A communication method, related apparatus, and storage medium
By transmitting code block streams containing clock frequency information between communication devices, the complexity of clock frequency information pass-through in Flexible Ethernet and next-generation transport networks is solved, achieving consistent clock frequency pass-through and resource saving.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- HUAWEI TECH CO LTD
- Filing Date
- 2021-09-28
- Publication Date
- 2026-05-22
AI Technical Summary
Existing technologies are complex to implement when passing clock frequency information through business data streams, making it difficult to achieve this in flexible Ethernet and next-generation transport networks.
By transmitting code block streams including clock frequency information between communication devices, the clock frequency information is used to indicate the transmission duration and reception time of data frames, ensuring that the clock frequencies of the receiving and transmitting ends are consistent, and adopting a flexible information transmission method to save bits and resources.
It enables transparent transmission of clock frequency information in flexible Ethernet and next-generation transport networks, simplifies the operation process, saves information transmission bits, and improves the flexibility and resource utilization efficiency of the solution.
Smart Images

Figure CN115811388B_ABST
Abstract
Description
[0001] This application claims priority to Chinese Patent Application No. 202111067726.3, filed on September 13, 2021, entitled "A Communication Method, Related Device and Storage Medium", the entire contents of which are incorporated herein by reference. Technical Field
[0002] This application relates to the field of communications, and more particularly to a communication method, related apparatus, and storage medium. Background Technology
[0003] Various types of services exist in a network, some of which require clock frequency pass-through. This means that communication device a2 can correctly parse the received service data stream only if the clock frequency of the service data stream sent by communication device a1 is substantially consistent with the clock frequency of the service data stream received by communication device a2. Services requiring clock frequency pass-through include: Common Public Radio Interface (CPRI) services and Synchronous Digital Hierarchy (SDH) services, as well as constant bitrate (CBR) services.
[0004] Currently, the clock frequency of transmitted services can be based on the circuit emulation service (CES). Specifically, the communication device processes the original service data stream at the user network interface (UNI), extracts the original service data frames, and adds the corresponding Ethernet frame header, pseudowire header, real-time transport protocol (RTP) header, Ethernet header, and frame check sequence (FCS) checksum to form an Ethernet packet. This Ethernet packet is then sent through a network-to-network interface (NNI). The clock frequency information of the service data stream can be placed in the RTP header. It can be seen that the above scheme requires encapsulating the data frame into an Ethernet packet. Therefore, when other communication devices receive this Ethernet packet, they need to perform Layer 2 (L2) processing (processing the Ethernet frame header, RTP header, and pseudowire header) and packet reassembly operations, making the process relatively complex.
[0005] On the other hand, Flexible Ethernet (FlexE) combines some technical characteristics of Ethernet and transport networks (such as Optical Transport Network (OTN), SDH, etc.), representing a significant milestone in the evolution of Ethernet technology. The emergence of Flexible Ethernet technology has virtualized Ethernet physical interfaces. Multiple Ethernet physical interfaces can be cascaded to support several virtual logical ports. For example, four 100 Gigabit Ethernet (100GE) physical interfaces cascaded to form a 400 Gigabit (400G) Flexible Ethernet physical interface group can support several logical ports. The International Telecommunication Union Telecommunication Standardization Sector (ITU-T) defined a new generation of transport network technology (Metro Transport Network, MTN) based on the reuse of FlexE logic to meet the needs of new services such as the 5th generation (5G) mobile networks. MTN is a new transport network consisting of the MTN Section layer and the MTN Path layer. Its physical layer is compatible with existing standard interfaces such as 50GBASE R, 100GBASE R, 200GBASE R, and 400GBASE R.
[0006] For bearer networks based on FlexE, MTN, etc., how to achieve transparent transmission of clock frequency information for service data streams has become an urgent problem to be solved. Summary of the Invention
[0007] This application provides a communication method, related apparatus, and storage medium to solve the problem of transparent transmission of clock frequency information for services.
[0008] In a first aspect, embodiments of this application provide a communication method, which can be executed by a first communication device. The first communication device receives a first service data stream, generates a first code block stream based on the first service data stream, and sends the first code block stream. The first code block stream includes first clock frequency information.
[0009] In one possible implementation, the first clock frequency information can be used to indicate the time when the first communication device receives k first data frames of the first service data stream. In another possible implementation, the first clock frequency information can be used to indicate the transmission duration of the k first data frames of the first service data stream. In yet another possible implementation, the first clock frequency information, while indicating the time when the first communication device receives k first data frames of the first service data stream, can also indicate the transmission duration of the k first data frames of the first service data stream.
[0010] Since the first code block stream sent by the first communication device includes first clock frequency information, which indicates the transmission duration of k first data frames and / or the transmission time when the first communication device receives the k first data frames, the second communication device can send k first data frames according to the first clock frequency information. This ensures that the clock frequency of the k first data frames sent by the second communication device is substantially consistent with the clock frequency of the k first data frames received by the first communication device, thereby resolving the problem of transparent transmission of service clock frequency information.
[0011] In one possible implementation, the first clock frequency information can be used to indicate the transmission duration of k first data frames of the first service data stream. For example, the first clock frequency information includes a first count value, which is the number of cycles of the local clock signal of the first communication device within the duration of receiving k first data frames. Thus, the second communication device can combine its local clock signal with the first count value to send the k first data frames within the duration of the first count value and the number of cycles of its local clock signal. This ensures that the clock frequency of the k first data frames sent by the second communication device is substantially consistent with the clock frequency of the k first data frames received by the first communication device, thereby solving the problem of transparent transmission of service clock frequency information. Furthermore, transmitting the first count value to achieve transparent transmission of clock frequency information can save bits of information that need to be transmitted.
[0012] In one possible implementation, the first clock frequency information can be used to indicate the transmission duration of k first data frames of the first service data stream. For example, the first clock frequency information includes a second count value, which is the difference between the first count value and a pre-designed value. Thus, the second communication device can calculate the first count value by combining the second count value and the pre-designed value, and then the second communication device can solve the problem of transparent transmission of the service's clock frequency information by combining its local clock signal and the first count value. Furthermore, since the second count value is the difference between the first count value and the pre-designed value, the number of bits occupied by the second count value can be less than the number of bits occupied by the first count value. Therefore, transmitting the second count value to achieve transparent transmission of clock frequency information can further save the number of bits of information that need to be transmitted.
[0013] To improve the flexibility of the solution, in one possible implementation, the first clock frequency information includes a second count value and a pre-designed value. Thus, the second communication device can calculate the first count value by combining the second count value and the pre-designed value, and then the second communication device can solve the problem of transparent transmission of the service's clock frequency information by combining its local clock signal and the first count value. Furthermore, in another possible implementation, the transmission periods for the second count value and the pre-designed value can be set separately; for example, the transmission period for the pre-designed value can be longer than the transmission period for the second count value. This reduces the number of times the pre-designed value is transmitted, saving resources. Moreover, since the first communication device also transmits the pre-designed value to the second communication device, the first communication device can more flexibly change the value of the pre-designed value, while the second communication device can directly determine the pre-designed value from the received data. It can be seen that the specific value of the pre-designed value in this solution can be more flexible and varied.
[0014] In one possible implementation, the pre-designed value can be a preset value. For example, the pre-designed value can be manually configured in the first communication device. Alternatively, rules and initial values can be manually configured in the first communication device, and then the first communication device can calculate the pre-designed value according to the configured rules and initial values.
[0015] In one possible implementation, the preset count value is the number of cycles of the clock frequency of the reference clock signal within a preset duration. The difference between the preset duration and the transmission duration of k first data frames is less than a preset difference threshold. This can also be understood as the transmission duration of any two groups of data frames (each group of k data frames) in the first service data stream deviating from each other; and the fact that the difference between the preset duration and the transmission duration of k first data frames is less than the preset difference threshold can also be understood as: the preset duration is relatively close to the average transmission duration of the k data frames in the first service data stream, thus the difference between the transmission duration of each group of data frames and the preset value can be small.
[0016] In one possible implementation, the first clock frequency information can be used to indicate the transmission time of k first data frames received by the first communication device. In another possible implementation, the first clock frequency information includes the reception time of the header of the first data frame and the reception time of the tail of the kth first data frame. Thus, the second communication device can send k first data frames based on the received first clock frequency information, thereby solving the problem of transparent transmission of the service's clock frequency information. In another possible implementation, the second communication device can calculate the transmission duration of the k first data frames based on the two received times. This method is simpler and does not require calculation with other reference values. In this implementation, the first clock frequency information can also be understood as indicating the transmission duration of the k first data frames of the first service data stream.
[0017] In this embodiment of the application, when the first clock frequency information includes the reception time of the frame header of the first data frame among k first data frames, the reception time of the frame header of the first data frame among k first data frames included in the first clock frequency information can refer to the time when the first communication device receives the frame header of the first data frame among the k first data frames. Similarly, when the first clock frequency information includes the reception time of the frame tail of the kth first data frame among k first data frames, the reception time of the frame tail of the kth first data frame among the k first data frames included in the first clock frequency information can refer to the time when the first communication device receives the frame tail of the kth first data frame among the k first data frames.
[0018] In one possible implementation, the first clock frequency information can indicate the transmission duration of k first data frames of the first service data stream. The first clock frequency information includes a first duration, which is the transmission duration of the k first data frames. Thus, the second communication device can send the k first data frames according to the received first duration, thereby solving the problem of transparent transmission of the service's clock frequency information. This method is relatively simple and does not require the first and second communication devices to have the same frequency.
[0019] In one possible implementation, the first clock frequency information can be used to indicate the time when the first communication device receives k first data frames of the first service data stream. The first clock frequency information includes the reception time of the frame header of the first data frame among the k first data frames. If a data frame corresponding to one clock frequency information is called a group of data frames, for example, since the first clock frequency information indicates the transmission duration of k first data frames, the k first data frames can be called a group of data frames. In this way, the second communication device can send k first data frames according to the received first clock frequency information, thereby solving the problem of transparent transmission of the service's clock frequency information. This method is relatively simple and does not require the first and second communication devices to have the same frequency.
[0020] In one possible implementation, the first clock frequency information includes the reception time of the frame end of the kth data frame out of k first data frames. Thus, the second communication device can send k first data frames based on the received first clock frequency information, thereby solving the problem of transparent transmission of service clock frequency information. This method is relatively simple and does not require the first and second communication devices to have the same frequency.
[0021] In one possible implementation, the first clock frequency information includes a third count value. The third count value is the number of cycles of the local clock signal of the first communication device within a second duration, and the second duration is the duration from the start of a preset time to the reception time of the frame header of the first of k first data frames. Thus, the second communication device can send k first data frames based on the received first clock frequency information, thereby solving the problem of transparent transmission of service clock frequency information.
[0022] In one possible implementation, the first clock frequency information includes a second duration. Thus, the second communication device can send k first data frames based on the received first clock frequency information, thereby solving the problem of transparent transmission of service clock frequency information. This method is relatively simple and does not require the first and second communication devices to have the same frequency.
[0023] In one possible implementation, the first clock frequency information includes a fourth count value. The fourth count value is the number of cycles of the local clock signal of the first communication device within a third duration, where the third duration is the time from the start of a preset time to the reception time of the end of the kth first data frame out of k first data frames. Thus, the second communication device can send k first data frames based on the received first clock frequency information, thereby solving the problem of transparent transmission of service clock frequency information.
[0024] In one possible implementation, the first clock frequency information includes a third duration. Thus, the second communication device can send k first data frames based on the received first clock frequency information, thereby solving the problem of transparent transmission of service clock frequency information. This method is relatively simple and does not require the first and second communication devices to have the same frequency.
[0025] In one possible implementation, the first code block stream further includes second clock frequency information; the second clock frequency information is used to indicate: the transmission duration of k second data frames of the first service data stream, and / or the time when the first communication device receives the k second data frames of the first service data stream. Since the first code block stream includes multiple clock frequency information items, the second communication device can send the recovered first service data stream according to the multiple clock frequency information items, and the clock frequency of the first service data stream sent by the second communication device is substantially consistent with the clock frequency of the first service data stream received by the first communication device, thereby solving the problem of transparent transmission of service clock frequency information.
[0026] In one possible implementation, the first code block stream includes a first data unit group, which includes W1 first data units, where W1 is a positive integer; first clock frequency information is carried in at least one of the W1 first data units.
[0027] W1 can be equal to 1. In this case, it can be understood as k first data frames encapsulated in one first data unit. The first clock frequency information is also carried in this first data unit.
[0028] W1 can also be greater than 1. In this case, it can be understood as k first data frames encapsulated in W1 (or more) first data units. Some of the first data units in these W1 first data units can carry the first clock frequency information. For example, the first clock frequency information can be carried in one of the W1 first data units, or it can be carried in two of the W1 first data units. In this case, one of the two first data units can carry a portion of the information in the first clock frequency information.
[0029] For a first data unit carrying first clock frequency information, in order to improve the flexibility of the scheme, the first clock frequency information may be carried in at least one of the following of the first data unit: a header code block, at least one data code block, a tail code block, or an operation, maintenance and management code block.
[0030] For a first data unit carrying first clock frequency information, in order to improve the flexibility of the scheme, the first clock frequency information may be carried in at least one of the following of the first data unit: overhead region or payload region.
[0031] In one possible implementation, the bits corresponding to the k first data frames are carried in the payload area of at least one data code block within the first data unit of the W1 first data units. In another possible implementation, the bits corresponding to the k first data frames are carried in the payload area and tail code block of at least one data code block within the first data unit of the W1 first data units. For example, a T7 code block.
[0032] In one possible implementation, at least one of the W1 first data units carries first indication information, which is used to indicate that the first data unit carrying the first indication information carries first clock frequency information.
[0033] Thus, when the second communication device receives the first indication information, it can determine that the first data unit carrying the first indication information carries the first clock frequency information, and thereby obtain the first clock frequency information from the first data unit. In this embodiment, the first communication device and the second communication device can pre-determine whether the clock frequency information is carried in one data unit or multiple data units. If it is determined that the clock frequency information is carried in one data unit, the first indication information is used to indicate that the first data unit carrying the first indication information carries all of the first clock frequency information. If it is determined that the clock frequency information is carried in multiple data units, the first indication information is used to indicate that the first data unit carrying the first indication information carries a portion of the first clock frequency information.
[0034] In one possible implementation, at least one of the W1 first data units carries second indication information, which is used to indicate that the first data unit carrying the second indication information does not carry first clock frequency information.
[0035] Thus, when the second communication device receives the second instruction information, it can determine from the second instruction information that the first data unit carrying the second instruction information does not carry the first clock frequency information, and therefore there is no need to obtain the first clock frequency information from the first data unit.
[0036] In one possible implementation, the first clock frequency information is carried in the payload area of the first data block of at least one of the W1 first data units. In this case, the tail code block of the first data unit carrying the first clock frequency information can be a T7 code block. Since the T7 code block has a large number of bits that can be used to carry data, when the payload area of the data code block is used to carry the first clock frequency information, a portion of the field of the tail code block T7 can be used to carry bits in k first data frames, thereby saving the number of data code blocks in the first data unit.
[0037] In one possible implementation, the number of data code blocks included in the two first data units of W1 first data units is the same. The first service data stream can be a data stream with a relatively constant rate. When the first communication device receives the first service data stream and encapsulates it, having the same number of data code blocks in the two data units of the first code block stream corresponding to the first service data stream can simplify the encapsulation process.
[0038] In one possible implementation, the first code block stream further includes a second data unit group, which comprises W2 second data units, where W2 is a positive integer. Each of the W2 second data units carries k second data frames of the first service data stream. The number of data code blocks included in one of the W2 second data units is the same as the number of data code blocks included in one of the W1 first data units. The first service data stream can be a data stream with a relatively constant rate. When the first communication device receives the first service data stream and encapsulates it, ensuring that the number of data code blocks in two data units within the first code block stream corresponding to the first service data stream is the same simplifies the encapsulation process.
[0039] In one possible implementation, W1 is equal to W2. Thus, the number of data units carrying k first data frames is equal to the number of data units carrying k second data frames, thereby simplifying the code block stream encapsulation process.
[0040] In one possible implementation, before generating the first code block stream based on the first service data stream, the first communication device may also receive Q0 second service data streams, where Q0 is a positive integer. The first communication device can generate the first code block stream based on the first service data stream and the Q0 second service data streams. The first clock frequency information is further used to indicate the transmission duration of k third data frames in each of the Q0 second service data streams and / or the time when the first communication device receives the k third data frames. In this way, the first communication device can receive multiple service data streams and encapsulate them to obtain the first code block stream, thereby improving service processing efficiency.
[0041] In one possible implementation, the communication device at the source end of Q0 second service data streams is the same as that at the source end of the first service data stream, and the communication device at the destination end of Q0 second service data streams is the same as that at the destination end of the first service data stream. Thus, during the process of the first communication device encapsulating multiple service data streams into a first code block stream and sending it to the second communication device, none of the communication devices at the intermediate nodes need to decapsulate the first code block stream, thereby improving the data transmission rate.
[0042] In one possible implementation, the first communication device can multiplex the bit blocks in the first service data stream and the Q0 second service data streams, in units of consecutive n0 bits, according to a preset order between the first service data stream and the Q0 second service data streams, to obtain a third service data stream; where n0 is a positive integer. The first communication device then generates a first code block stream based on the third service data stream. In this way, the first communication device can process multiple received service data streams in parallel, which reduces the amount of data that needs to be buffered compared to serial processing, thereby reducing buffer pressure.
[0043] In one possible implementation, n0 is either 8 bits or 256 bits. Thus, the arrangement of data from various service data streams included in the first data unit can be adjusted by changing the value of n0. For a specific example, a pulse code modulation (PCM) frame in the first service data stream is 256 bits (32*8=256). By truncating one PCM frame in 64-bit units, four segments can be extracted. Therefore, each data unit can carry one PCM frame within the payload area of four D-blocks. If there are four service data streams, each data unit can include 16 D-blocks, which can carry four PCM frames from the four service data streams. The bit arrangement of these four PCM frames on the 16 D-blocks can vary with the value of n0. Furthermore, adjusting the value of n0 in byte (8-bit) units allows for a more regular distribution of the various service data streams within the data unit.
[0044] In one possible implementation, the first code block stream includes a first data unit group, which includes W1 first data units.
[0045] When W1 is 1, one of the W1 first data units includes: bits corresponding to k first data frames in the first service data stream, and bits corresponding to k third data frames in each of the Q0 second service data streams. When W1 is 1, a first data unit encapsulates k data frames from the first service data stream and each of the Q0 second service data streams.
[0046] When W1 is an integer greater than 1, one of the W1 first data units includes: a portion of the bits corresponding to the k first data frames in the first service data stream, and a portion of the bits corresponding to the k third data frames in each of the Q0 second service data streams.
[0047] In one possible implementation, if W1 is an integer greater than 1 and k / W1 is an integer, then one of the W1 first data units includes: bits corresponding to (k / W1) first data frames in the first service data stream, and bits corresponding to (k / W1) third data frames in each of the Q0 second service data streams. When W1 is greater than 1, one first data unit encapsulates (k / W1) data frames from the first service data stream and each of the Q0 second service data streams. In this way, multiple service data streams can be distributed evenly and in parallel across the W1 data units.
[0048] In one possible implementation, the first communication device can process Q0 second service data streams to generate Q0 third code block streams. The first service data streams are also processed to generate second code block streams; these second code block streams include first clock frequency information and k first data frames. The first communication device can multiplex the data from the Q0 third code block streams and the second code block streams to obtain a first code block stream. This improves the flexibility of the solution.
[0049] In one possible implementation, the first communication device can multiplex the data units in the Q0 third and second code block streams, using N1 data units as units, according to a preset order between the Q0 third code block streams and the second code block stream, to obtain a first code block stream, where N1 is a positive integer. Thus, the obtained first code block stream is still a code block stream based on data units, thereby laying the foundation for reusing the first code block stream with other code block streams.
[0050] In one possible implementation, before transmitting the first code block stream, the first communication device may also acquire Q1 fourth code block streams, where Q1 is a positive integer. Based on the correspondence between the Q1 fourth code block streams and the first code block stream and S1 first time slots, the first communication device performs time-division multiplexing on the code blocks in the Q1 fourth code block streams and the first code block stream to obtain a fifth code block stream; one code block stream from the Q1 fourth code block streams and the first code block stream corresponds to at least one of the S1 first time slots; S1 is an integer not less than (Q1+1). The fifth code block stream is then transmitted. In this scenario, the first code block stream can be a code block stream corresponding to a large-granularity time slot, and further, it can be multiplexed with other code block streams from large-granularity time slots before transmission, thus broadening the scope of application of this application.
[0051] In one possible implementation, before transmitting the fifth code block stream, the first communication device can also acquire Q2 sixth code block streams, where Q2 is a positive integer. The first communication device can time-division multiplex the code blocks in the Q2 sixth and fifth code block streams according to the correspondence between the Q2 sixth and fifth code block streams and S2 second time slots, respectively, to obtain a seventh code block stream; wherein one of the Q2 sixth and fifth code block streams corresponds to at least one of the S2 second time slots; S2 is an integer not less than (Q2+1); the second time slot corresponding to the fifth code block stream is divided into S1 first time slots. The seventh code block stream is then transmitted. In this scenario, the first code block stream can be the code block stream corresponding to a small-granularity time slot, and further, it can be multiplexed with other code block streams in other small-granularity time slots, and then multiplexed again with other code block streams in other large-granularity time slots before transmission, thus broadening the scope of application of this application.
[0052] In one possible implementation, the first code block stream includes a first data unit group, which comprises W1 first data units. Each of the W1 first data units includes one of the following: a header code block and at least one data code block; a header code block, at least one data code block, and a tail code block; at least one data code block and a tail code block; a header code block, at least one data code block, and an operation and maintenance management code block; a header code block, at least one data code block, a tail code block, and an operation and maintenance management code block; or, at least one data code block, a tail code block, and an operation and maintenance management code block. This increases the flexibility of the solution.
[0053] In one possible implementation, the header code block is an S-block; the tail code block is a T-block; the data code block is a D-block; or, the operation, maintenance, and management code block is an O-block. This allows for greater compatibility with existing standards.
[0054] Secondly, embodiments of this application provide a communication method, which can be executed by a second communication device. The second communication device acquires a first code block stream. The first code block stream includes first clock frequency information; the first clock frequency information indicates: the transmission duration of k first data frames of a first service data stream, and / or the time when the k first data frames of the first service data stream are received. k is a positive integer. The second communication device acquires k first data frames and the first clock frequency information from the first code block stream. The second communication device sends the k first data frames according to the first clock frequency information.
[0055] Since the first code block stream includes first clock frequency information, which indicates the transmission duration of k first data frames of the first service data stream and / or the time when the k first data frames of the first service data stream are received, the second communication device can send k first data frames according to the first clock frequency information. This ensures that the clock frequency of the k first data frames sent by the second communication device is substantially consistent with the clock frequency of the k first data frames received by the first communication device, thereby solving the problem of transparent transmission of service clock frequency information.
[0056] In one possible implementation, the specific implementation form and beneficial effects of the first clock frequency information can be found in the relevant introduction of the first aspect mentioned above, and will not be repeated here.
[0057] In one possible implementation, the preset count value is the number of cycles of the reference clock signal's clock frequency within a preset duration. Related beneficial effects and descriptions can be found in the aforementioned first aspect, and will not be repeated here.
[0058] In one possible implementation, the difference between the preset duration and the transmission duration of k first data frames is less than a preset difference threshold. Related beneficial effects and descriptions can be found in the aforementioned first aspect, and will not be repeated here.
[0059] In one possible implementation, the first code block stream further includes second clock frequency information. The second clock frequency information indicates the transmission duration of k second data frames of the first service data stream, and / or the time when the first communication device receives the k second data frames of the first service data stream. The second communication device may also obtain the second clock frequency information and the k second data frames from the first code block stream, and transmit the k second data frames according to the second clock frequency information.
[0060] Since the first code block stream includes multiple clock frequency information, the second communication device can send the recovered first service data stream according to the multiple clock frequency information. Moreover, the clock frequency of the first service data stream sent by the second communication device is basically consistent with the clock frequency of the first service data stream received by the first communication device, thereby solving the problem of transparent transmission of service clock frequency information.
[0061] In one possible implementation, the first code block stream includes a first data unit group, which includes W1 first data units, where W1 is a positive integer; first clock frequency information is carried in at least one of the following in at least one of the W1 first data units: a header code block, at least one data code block, a tail code block, or an operation and maintenance management code block. Related beneficial effects and descriptions can be found in the relevant content of the first aspect above, and will not be repeated here.
[0062] In one possible implementation, the bits corresponding to the k first data frames are carried in one of the following of the first data units in the W1 first data units: a payload area of a data block in at least one data code block; or, a payload area and a tail code block of a data block in at least one data code block. Related beneficial effects and descriptions can be found in the relevant content of the first aspect above, and will not be repeated here.
[0063] In one possible implementation, at least one of the W1 first data units carries first indication information, which indicates that the first data unit carrying the first indication information carries first clock frequency information. Related beneficial effects and descriptions can be found in the aforementioned first aspect, and will not be repeated here.
[0064] In one possible implementation, at least one of the W1 first data units carries second indication information, which indicates that the first data unit carrying the second indication information does not carry first clock frequency information. Related beneficial effects and descriptions can be found in the aforementioned first aspect, and will not be repeated here.
[0065] In one possible implementation, the first clock frequency information is carried in the payload region of the first data block of at least one of the W1 first data units; the first data unit carrying the first clock frequency information includes a tail code block of T7. Related beneficial effects and descriptions can be found in the relevant content of the first aspect described above, and will not be repeated here.
[0066] In one possible implementation, the number of data code blocks included in two of the W1 first data units is the same. Related beneficial effects and descriptions can be found in the aforementioned first aspect, and will not be repeated here.
[0067] In one possible implementation, the first code block stream further includes a second data unit group, which comprises W2 second data units, where W2 is a positive integer. Each of the W2 second data units carries k second data frames of the first service data stream. The number of data code blocks included in one of the W2 second data units is the same as the number of data code blocks included in one of the W1 first data units. Related beneficial effects and descriptions can be found in the aforementioned first aspect, and will not be repeated here.
[0068] In one possible implementation, W1 is equal to W2. Related beneficial effects and descriptions can be found in the relevant content of the first aspect mentioned above, and will not be repeated here.
[0069] In one possible implementation, the second communication device can obtain first clock frequency information from the first code block stream. The first code block stream is demultiplexed to obtain a first service data stream and Q0 second service data streams, where Q0 is a positive integer. The first clock frequency information is also used to indicate the transmission duration of k third data frames in each of the Q0 second service data streams and / or the time when the first communication device receives the k third data frames. Thus, the first and second communication devices can transmit multiple service data streams through the first code block stream, thereby improving service processing efficiency.
[0070] In one possible implementation, the communication device at the source end of Q0 second service data streams is the same as that at the source end of the first service data stream, and the communication device at the destination end of Q0 second service data streams is the same as that at the destination end of the first service data stream. Related beneficial effects and descriptions can be found in the relevant content of the foregoing first aspect, and will not be repeated here.
[0071] In one possible implementation, the second communication device can demultiplex the first code block stream in units of n0 consecutive bit blocks to obtain a first service data stream and Q0 second service data streams. In this way, the first communication device can process multiple received service data streams in parallel, which reduces the amount of data that needs to be buffered compared to serial processing, thereby reducing buffer pressure.
[0072] In one possible implementation, n0 is 8 bits or 256 bits. Related beneficial effects and descriptions can be found in the relevant content of the first aspect mentioned above, and will not be repeated here.
[0073] In one possible implementation, the first code block stream includes a first data unit group, which includes W1 first data units. When W1 is 1, one of the W1 first data units includes: bits corresponding to k first data frames in the first service data stream, and bits corresponding to k third data frames in each of the Q0 second service data streams;
[0074] When W1 is an integer greater than 1, one of the W1 first data units includes: a portion of the bits corresponding to the k first data frames in the first service data stream, and a portion of the bits corresponding to the k third data frames in each of the Q0 second service data streams.
[0075] In one possible implementation, W1 is an integer greater than 1. If k / W1 is an integer, then one of the W1 first data units includes: bits corresponding to (k / W1) first data frames in the first service data stream, and bits corresponding to (k / W1) third data frames in each of the Q0 second service data streams. Related beneficial effects and descriptions can be found in the aforementioned first aspect, and will not be repeated here.
[0076] In one possible implementation, the second communication device can demultiplex the first code block stream to obtain Q0 third code block streams and a second code block stream. The second code block stream includes first clock frequency information and k first data frames. The second communication device can obtain the first service data stream and the first clock frequency information from the second code block stream. Q0 second service data streams are obtained from the Q0 third code block streams. This improves the flexibility of the solution.
[0077] In one possible implementation, the second communication device can demultiplex the first code block stream into N1 data units to obtain Q0 third and second code block streams, where N1 is a positive integer. This simplifies the processing and reduces the complexity of the data processing steps.
[0078] In one possible implementation, the second communication device can acquire a fifth code block stream. Based on the correspondence between Q1 fourth code block streams and the first code block stream and S1 first time slots, the fifth code block stream is demultiplexed to obtain Q1 fourth code block streams and the first code block stream. One of the Q1 fourth code block streams and the first code block stream corresponds to at least one of the S1 first time slots; S1 is an integer not less than (Q1+1). In this scenario, the first code block stream can be a code block stream corresponding to a large-granularity time slot, thus broadening the scope of application of this application.
[0079] In one possible implementation, the second communication device can acquire a seventh code block stream before transmitting the fifth code block stream. The second communication device can demultiplex the seventh code block stream according to the correspondence between S2 second time slots and Q2 sixth and fifth code block streams, obtaining Q2 sixth and fifth code block streams. One of the Q2 sixth and fifth code block streams corresponds to at least one of the S2 second time slots; the second time slot corresponding to the fifth code block stream is divided into S1 first time slots; S2 is an integer not less than (Q2+1). In this scenario, the first code block streams can be code block streams corresponding to smaller time slots, thus broadening the scope of application of this application.
[0080] In one possible implementation, the first code block stream includes a first data unit group, which includes W1 first data units. Each of the W1 first data units includes one of the following: a header code block and at least one data code block; a header code block, at least one data code block, and a tail code block; at least one data code block and a tail code block; a header code block, at least one data code block, and an operation and maintenance management code block; a header code block, at least one data code block, a tail code block, and an operation and maintenance management code block; or, at least one data code block, a tail code block, and an operation and maintenance management code block. Related beneficial effects and descriptions can be found in the relevant content of the first aspect described above, and will not be repeated here.
[0081] In one possible implementation, the header code block is an S code block; the tail code block is a T code block; the data code block is a D code block; or, the operation, maintenance, and management code block is an O code block. Related beneficial effects and descriptions can be found in the relevant content of the first aspect mentioned above, and will not be repeated here.
[0082] Thirdly, a communication device is provided, including a communication unit and a processing unit. This communication device can be either the first or second communication device described above. The communication device can execute any one of the first to second aspects, and any embodiment of any one aspect. The communication unit is used to perform functions related to sending and receiving. Optionally, the communication unit includes a receiving unit and a sending unit. In one design, the communication device is a communication chip, the processing unit can be one or more processors or processor cores, and the communication unit can be the input / output circuitry or port of the communication chip.
[0083] In another design, the communication unit can be a transmitter and a receiver, or the communication unit can be a transmitter and a receiver.
[0084] Optionally, the communication device may also include modules that can be used to perform any one of the first to second aspects described above, and any embodiment of any one aspect.
[0085] Fourthly, a communication device is provided, including a processor and a memory. This communication device can be either the first or second communication device described above. Optionally, it further includes a transceiver. The memory stores computer programs or instructions, and the processor retrieves and executes the computer programs or instructions from the memory. When the processor executes the computer programs or instructions in the memory, the communication device performs any one of the first to second aspects described above, and any implementation thereof.
[0086] Optionally, there may be one or more processors and one or more memories.
[0087] Optionally, the memory can be integrated with the processor, or the memory can be set up separately from the processor.
[0088] Optionally, the transceiver may include a transmitter and a receiver.
[0089] Fifthly, a communication device is provided, including a processor. This communication device can be either the first or the second communication device described above. The processor is coupled to a memory and can be used to execute any one of the first or second aspects, and any implementation thereof. Optionally, the communication device further includes a memory. Optionally, the communication device further includes a communication interface, and the processor is coupled to the communication interface.
[0090] In one implementation, when the communication device is a first communication device or a second communication device, the communication interface can be a transceiver or an input / output interface. Optionally, the transceiver can be a transceiver circuit. Optionally, the input / output interface can be an input / output circuit.
[0091] In another implementation, when the communication device is a chip or chip system of a first communication device, or a chip or chip system of a second communication device, the communication interface can be an input / output interface, interface circuit, output circuit, input circuit, pin, or related circuit on the chip or chip system. The processor can also be manifested as a processing circuit or logic circuit.
[0092] Sixthly, a system is provided, which includes the first communication device and the second communication device described above.
[0093] In a seventh aspect, a computer program product is provided, comprising: a computer program (also referred to as code or instructions) that, when executed, causes a computer to perform any one of the first to second aspects described above, and any implementation thereof.
[0094] Eighthly, a computer-readable storage medium is provided, which stores a computer program (also referred to as code or instructions) that, when executed on a computer, causes the computer to perform any one of the first to second aspects described above, and any implementation thereof.
[0095] A ninth aspect provides a chip system that may include a processor. The processor is coupled to a memory and can be used to execute any one of the first to second aspects described above, and any implementation thereof. Optionally, the chip system further includes a memory. The memory is used to store a computer program (also referred to as code or instructions). The processor is used to call and run the computer program from the memory, causing a device on which the chip system is mounted to execute any one of the first to second aspects, and any implementation thereof.
[0096] A tenth aspect provides a processing apparatus, comprising: an interface circuit and a processing circuit. The interface circuit may include an input circuit and an output circuit. The processing circuit is configured to receive signals through the input circuit and transmit signals through the output circuit, thereby enabling any one of the first to second aspects, and any embodiment of any one aspect, to be implemented.
[0097] In specific implementation, the aforementioned processing device can be a chip, the input circuit can be an input pin, the output circuit can be an output pin, and the processing circuit can be a transistor, gate circuit, flip-flop, and various logic circuits, etc. The input signal received by the input circuit can be received and input by, for example, but not limited to, a receiver, and the signal output by the output circuit can be, for example, but not limited to, output to a transmitter and transmitted by the transmitter. Furthermore, the input circuit and the output circuit can be the same circuit, which is used as the input circuit and output circuit at different times. This application does not limit the specific implementation method of the processor and various circuits.
[0098] In another implementation, the communication device can be a component of the first or second communication device, such as an integrated circuit product like a system-on-a-chip (SoC) or communication chip. The interface circuit can be an input / output interface, interface circuit, output circuit, input circuit, pins, or related circuits on the chip or chip system. The processing circuit can be the logic circuit on the chip. Attached Figure Description
[0099] Figure 1a This is a schematic diagram of a network architecture applicable to an embodiment of this application;
[0100] Figure 1b This is a schematic diagram of another network architecture applicable to the embodiments of this application;
[0101] Figure 1c This is a schematic diagram of a protocol stack hierarchy model architecture applicable to embodiments of this application;
[0102] Figure 1d This is a schematic diagram of another protocol stack layer model architecture applicable to the embodiments of this application;
[0103] Figure 2aIn order to be in Figure 1a Based on this, an example of a possible pipe partitioning scheme for a communication device is shown;
[0104] Figure 2b A schematic diagram of the structure of a code block in 64B / 66B encoding format;
[0105] Figure 2c The structure of the free code block;
[0106] Figure 2d This is a schematic diagram of a frame structure corresponding to an OSU service provided in an embodiment of this application;
[0107] Figure 3 This application provides an interactive schematic diagram of a communication method according to an embodiment of the present application;
[0108] Figure 4a A schematic flowchart illustrating a data transmission method on the side of a first communication device, provided as an embodiment of this application;
[0109] Figure 4b A schematic diagram of the statistical first count value provided in the embodiments of this application;
[0110] Figure 4c A schematic flowchart illustrating a data transmission method on the second communication device side provided in an embodiment of this application;
[0111] Figure 5a One possible implementation of converting a service data stream into a code block stream, as provided in the embodiments of this application;
[0112] Figure 5b A schematic diagram illustrating the rate relationship of various data streams during the container construction process provided in this application embodiment;
[0113] Figure 5c This is one possible implementation of converting code block streams into business data streams in the embodiments of this application;
[0114] Figure 6a A schematic diagram illustrating the location of a first clock frequency information carrier provided in an embodiment of this application;
[0115] Figure 6b A schematic diagram illustrating the location for carrying first clock frequency information according to another embodiment of this application;
[0116] Figure 6c A schematic diagram illustrating the location for carrying first clock frequency information according to another embodiment of this application;
[0117] Figure 6d This application provides a schematic diagram of a possible O-code block structure.
[0118] Figure 7a This application provides a schematic diagram of multiplexing bit blocks according to an embodiment of the present application;
[0119] Figure 7b Provided for the embodiments of this application Figure 6a A schematic diagram of the signals carried in the data unit shown;
[0120] Figure 7c Provided for the embodiments of this application Figure 6a A schematic diagram of the signals carried in the data unit shown;
[0121] Figure 7d This is a schematic diagram illustrating a scheme for reusing data units provided in an embodiment of this application;
[0122] Figure 8 A schematic diagram of the frame format of a flexible Ethernet protocol provided in an embodiment of this application;
[0123] Figure 9a A flexible small granularity basic unit (fgBU) format is provided for embodiments of this application;
[0124] Figure 9b A schematic diagram of a basic frame of a code block stream provided in an embodiment of this application;
[0125] Figure 9c A schematic diagram illustrating the data frame transmission duration of a possible first service data stream provided in an embodiment of this application;
[0126] Figure 9d A schematic diagram illustrating the data frame transmission duration of a possible first service data stream provided in an embodiment of this application;
[0127] Figure 10 This is a schematic diagram of a communication device structure provided in an embodiment of this application;
[0128] Figure 11 This application provides another schematic diagram of a communication device structure.
[0129] Figure 12 This is a schematic diagram of another communication device structure provided in an embodiment of this application. Detailed Implementation
[0130] The technical solutions provided in this application can be applied to metro transport networks (MTNs), as well as other types of networks, such as Flexible Ethernet (FlexE), Ethernet, OTN, and SDH networks. For ease of explanation, this application mainly uses FlexE as an example for illustration.
[0131] Figure 1a An exemplary diagram illustrates a network architecture applicable to embodiments of this application, such as... Figure 1a As shown, the network architecture includes a first communication device and a second communication device. Other communication devices may or may not be present between the first and second communication devices. In this embodiment, the first and second communication devices can be network devices, or modules, units, or chips within network devices. These network devices include, but are not limited to: core routers, edge routers, OTN transmission equipment, OTN optical service units (OSUs), and scenario-specific Internet Protocol Radio Access Network (IPRAN) or Packet Transport Network (PTN) box-type or chassis-type switch equipment.
[0132] In this embodiment, the first communication device can receive a first service data stream, generate a first code block stream based on the first service data stream, and send the first code block stream. The first code block stream includes first clock frequency information. The first clock frequency information is used to indicate: the transmission duration of k first data frames of the first service data stream, and / or the time when the k first data frames of the first service data stream are received. k is a positive integer. The second communication device obtains k first data frames and the first clock frequency information from the first code block stream, and then sends the k first data frames according to the first clock frequency information.
[0133] Since the first communication device sends the first clock frequency information of the k first data frames of the first service data stream to the second communication device, the second communication device can send the k first data frames according to the first clock frequency information. This makes the clock frequency of the k first data frames sent by the second communication device basically consistent with the clock frequency of the k first data frames received by the first communication device, thereby solving the problem of transparent transmission of the clock frequency information of the service.
[0134] Figure 1b An exemplary diagram illustrates another network architecture applicable to embodiments of this application, such as... Figure 1b As shown, the network architecture includes three types of devices, which can be backbone network edge (PE) routers, customer network edge (CE) routers, and backbone network core routers (PR). In this embodiment, the PE router can also be written as PE, such as PE1 and PE2 in the following examples, and the CE router can also be abbreviated as CE, such as CE1 and CE2 in the following examples.
[0135] like Figure 1b As shown, the CE devices in this network architecture include CE1 and CE2. In this embodiment, CE1 can send data to CE2, and CE2 can also send data to CE1. In this embodiment, the CE that sends data is referred to as the source communication device, or the source end. In this embodiment, the source end can also refer to the communication device that generates the service data stream. The CE that receives data is referred to as the destination communication device, or the destination end. In this embodiment, the destination end can also refer to the communication device that ultimately needs to parse the service data stream. Figure 1b The example shown is that CE1 can send data to CE2. In this example, CE1 is the source and CE2 is the destination.
[0136] like Figure 1b As shown, the PE device is in Figure 1b This includes PE1 and PE2. PE1 and PE2 may or may not include other communication devices. Figure 1b The example shown includes devices such as P1 and P2 between PE1 and PE2. P1 and P2 can be PR devices.
[0137] Figure 1a The first communication device in the middle can be Figure 1b PE1 in Figure 1a The second communication device can be Figure 1b PE2 is a CE device. PE1 can receive at least one service data stream from a CE device (such as CE1). PE1 can also receive service data streams from other CE devices. For ease of description, the first service data stream in the at least one service data stream is used as an example. The processing method of other service data streams (from CE1 or other CE devices) can be found in the processing method of the first service data stream.
[0138] Figure 1b PE1 can acquire at least one clock frequency information of the first service data stream. The clock frequency information in the at least one clock frequency information can indicate the transmission duration of at least one data frame in the first service data stream. For ease of description, we will take the first clock frequency information as an example, referring to one or more data frames corresponding to the first clock frequency information as first data frames, and denoting the number of data frames corresponding to the first clock frequency information as k. The first clock frequency information can indicate the transmission duration of k first data frames.
[0139] Figure 1bPE1 can obtain the first clock frequency information of the first service data stream, and then send k first data frames and the first clock frequency information to PE2. PE2 can send the received k first data frames to the destination using the first clock frequency information. This ensures that the clock frequency of the k first data frames sent by PE2 to the destination is substantially consistent with the clock frequency of the k first data frames received by PE1 from the source. For the relevant schemes of other data frames in the first service data stream, please refer to the relevant description of the k first data frames, which will not be repeated here. It can be seen that the scheme provided in this application embodiment can solve the problem of transparent transmission of service clock frequency information.
[0140] Figure 1c This illustration demonstrates a protocol stack hierarchy model architecture applicable to embodiments of this application, specifically the Ethernet protocol stack hierarchy. Ethernet is a set of standards defined by the IEEE 802 standards organization, encompassing network, interface, and physical layer technologies. Relevant to embodiments of this application is the Ethernet physical layer as defined in Clause 82 of IEEE 802.3, and its protocol stack hierarchy can be referenced from... Figure 1c .like Figure 1c As shown, this model architecture is a network interconnection model that defines a seven-layer framework for network interconnection, from the bottom layer to the top layer: physical layer, data link layer, network layer, transport layer, session layer, presentation layer, and application layer.
[0141] Ethernet resides at the data link layer and physical layer of the Open System Interconnection (OSI) reference model. For example... Figure 1c As shown, the data link layer consists of two sublayers: the logical link control (LLC) sublayer and the MAC sublayer, which is responsible for parsing and assembling Ethernet frames.
[0142] like Figure 1c As shown, the physical layer can include a physical medium dependent (PMD) sublayer, a physical medium attachment (PMA) sublayer, a forward error correction (FEC) sublayer (also known as the FEC layer), and a physical coding sublayer (PCS). A reconciliation sublayer (RS) is also included between the PCS and the MAC sublayer. Figure 1c The diagram also illustrates the medium connected to the PMD, which can be a cable, a pluggable optical module, or an optical fiber.
[0143] Ethernet frames can be transmitted to the physical layer via an interface. At the physical layer, Ethernet frames are processed sequentially from top to bottom through the MAC sublayer, RS, PCS, FEC sublayer, PMA sublayer, and PMD sublayer. The processed data stream is represented as a signal sent to the link medium. The receiving direction involves the reverse process: the signal is received from the link medium and processed sequentially through the PMD sublayer, PMA sublayer, FEC sublayer, and finally the PCS to recover the MAC data stream.
[0144] exist Figure 1c In the system architecture shown, the data stream can be compiled by the PCS into a set of bits with a fixed format, such as a 66-bit code block. The FEC sublayer may involve encoding format conversion; for example, the FEC layer can convert a 64B / 66B encoded code block stream into a 256B / 257B encoded code block stream. In this embodiment, the code block stream can be either the code block stream involved in the PCS or the code block stream involved in the FEC sublayer.
[0145] The above Figure 1c The present application provides an exemplary illustration of the Ethernet protocol stack layers to which this application is applicable. Flexible Ethernet (FlexE) and MTN are two technologies that extend from the code blocks of the Ethernet physical layer.
[0146] The Optical Internet Forum (OIF) has released FlexE, a general-purpose technology supporting multiple Ethernet MAC layer rates. By binding multiple 100GE physical (PHY) interfaces and dividing each 100GE port into 20 time slots in 5GHz granularities in the time domain, FlexE supports the following functions: Binding, binding multiple Ethernet interfaces into a link group to support MAC services with rates higher than a single Ethernet interface; Sub-rate, supporting MAC services with rates lower than the link group bandwidth or lower than the bandwidth of a single Ethernet interface by allocating time slots for services; and Channelization, supporting the simultaneous transmission of multiple MAC services in a link group by allocating time slots for services, for example, supporting the simultaneous transmission of one 150G and two 25G MAC services in a 2x100GE link group.
[0147] ITU-T Study Group 15, borrowing some design concepts from FlexE, defined a new transport technology, MTN. MTN can include complete transport network functions, such as interfaces, cross-connects, operations, administration, and maintenance (OAM), control, and protection. OIF FlexE is an interface technology suitable for data center interconnection (DCI) scenarios. MTN is a comprehensive transport network technology suitable for 5G transport networks. MTN and FlexE are not equivalent.
[0148] Figure 1d This illustration demonstrates another protocol stack hierarchy model architecture applicable to embodiments of this application. This protocol stack hierarchy model is the protocol stack hierarchy of an MTN network. (See below) Figure 1d As shown, from the perspective of the protocol stack, the OIF FlexE shim is functionally equivalent to the MTN section layer. The MTN section layer is compatible with FlexE, and the frame format of the MTN section layer can adopt the FlexE frame format.
[0149] Figure 1d The PCS in the PCS can include MTN Path Adaptation layer, MTN Path Trail Termination layer, MTN Path Connection layer, MTN Section Adaptation layer, and MTN Section Trail Termination layer.
[0150] like Figure 1dAs shown, the sending end can sequentially pass the data stream through the MAC and RS modules to enter the MTN pathlayer in the MTN domain. After being encoded by the PCS encoding module at the MTN pathlayer, the data stream can be called a block stream (e.g., a 64B / 66B block stream). Further, this 64B / 66B block stream can have pathlayer OAM and other overhead information inserted at the MTN pathlayer, and the corresponding forwarding port and time slot can be found through the MTN path connection function module. Then, this block stream can enter the MTN section layer from the MTN pathlayer, where it can be interleaved with other block streams through rate adaptation. The interleaved block stream can have section layer OAM and other overhead information inserted at the MTN section layer, and then, after adaptation, it enters the PHY layer for transmission. It is worth noting that this adaptation function is not an MTN domain function. After adaptation, the block stream will undergo 64B / 66B to 256B / 257B transcoding at the FEC. The transcoded code block stream will be sent to the physical link for transmission and thus sent out.
[0151] like Figure 1d As shown, the data stream received by the receiving end can be processed sequentially through the FEC sublayer, MTN segment layer, and MTN channel layer. During reception, after receiving the code block stream, the FEC sublayer of the receiving end first performs FEC error correction, and then converts the encoding format of the data stream (for example, converting the 256B / 257B code block stream to a 64B / 66B code block stream). This code block stream then enters the MTN segment layer, where it undergoes processing and deinterleaving. At the MTN segment layer adaptation layer, it is restored to the 64B / 66B code block streams of each individual MAC address. Finally, the 64B / 66B code block streams are forwarded at the MTN channel layer link function module.
[0152] from Figure 1d As can be seen, the MTN segment layer, similar to FlexE, can provide point-to-point links. The MTN channel layer, on the other hand, provides cross-connection functionality from device ingress ports to egress ports. In other words, the MTN channel layer can chain the point-to-point links of the MTN segment layers into a complete channel from network ingress to network egress.
[0153] It is important to note that, Figure 1dIn the system architecture shown, the data stream at the MTN channel layer can be compiled into a set of bits with a fixed format through the PCS encoding module, such as a 66-bit code block. The FEC sublayer may involve encoding format conversion; for example, the FEC layer can convert a 64B / 66B encoded code block stream into a 256B / 257B encoded code block stream. In this embodiment, the code block stream can be either the code block stream involved in the MTN channel layer or the code block stream involved in the FEC sublayer.
[0154] The following explains some of the terms and concepts used in the embodiments of this application.
[0155] (1) Large-granular business and small-granular business.
[0156] Based on the above, Figure 2a exist Figure 1a Based on this, an example of a possible pipe partitioning scheme for a communication device is shown, such as Figure 2a As shown, the interfaces of the first communication device and the second communication device are divided into channels. In this embodiment, two terms are defined: large-granularity channel and small-granularity channel. These are relative terms; a large-granularity channel can be divided into at least two small-granularity channels, and the bandwidth of a large-granularity channel is greater than that of a small-granularity channel. In this embodiment, the time slot allocation for MTN / FlexE can be in 5Gbps granularity. At least one 5Gbps time slot granularity channel in MTN / FlexE can be called a large-granularity channel. It should be noted that in this embodiment, a single 5Gbps time slot granularity channel can be called a large-granularity channel, or multiple 5Gbps time slot granularity channels can be called a large-granularity channel. Correspondingly, the channels divided within the time slots of a large-granularity channel can be called small-granularity channels. To more clearly illustrate this embodiment, the following content will use a single 5Gbps time slot granularity channel as an example of a large-granularity channel. Ethernet hard leased line technology is based on MTN / FlexE technology and provides smaller granularity pipeline bandwidth. The pipeline with smaller bandwidth granularity provided in Ethernet hard leased line technology can be called small granular pipeline. Small granular pipeline is used to carry one or more small granular services.
[0157] In this application's embodiments, "small-granularity service" can be defined relative to "large-granularity service." A small-granularity service refers to a service with a bandwidth smaller than that of a large-granularity pipeline; for example, services requiring bandwidth of 10Mbps or 100Mbps can be called small-granularity services. In this application's embodiments, nodes that require multiplexing or demultiplexing of small-granularity services are called small-granularity nodes, and nodes that require multiplexing and demultiplexing of large-granularity services are called large-granularity nodes. A node on a transmission path may or may not be a small-granularity node.
[0158] Figure 2a The example illustrates a possible service transmission method, combined with Figure 2a For example, Figure 2a As shown, the large-granularity pipeline 40 is divided into 480 small-granularity pipelines 401. Each small-granularity pipeline corresponds to a sub-time slot resource. Based on the correspondence between small-granularity services and sub-time slots, the code block streams of each small-granularity service are multiplexed to obtain the code block stream 411 corresponding to the large-granularity pipeline 40. The first communication device includes 20 time slots corresponding to the large-granularity pipelines, with each large-granularity pipeline corresponding to one time slot. Except for the large-granularity pipeline 40, the other large-granularity pipelines are used to carry large-granularity services. There is a correspondence between the large-granularity services and time slots, or in other words, there is a correspondence between the large-granularity services and each large-granularity pipeline. Then, the code block streams corresponding to each large-granularity pipeline (such as code block stream 411 shown in the figure, code block stream 511 corresponding to large-granularity pipeline 50, and code block stream 611 corresponding to large-granularity pipeline 60) are multiplexed to obtain code block stream 1211. Then, code block stream 1211 is sent to the second communication device.
[0159] like Figure 2a As shown, the second communication device demultiplexes the code block stream 1211 to obtain the code block streams corresponding to each large particle channel, such as code block streams 411, 511 and 611 shown in the figure. Figure 1d The second communication device further demultiplexes the code block stream 411 to obtain small-granularity service 1 and small-granularity service 2.
[0160] (2) Code block.
[0161] In the embodiments of this application, a code block refers to one bit or multiple consecutive bits, and the information carried on a code block can refer to the information carried on the bits included in the code block.
[0162] The code block in this application embodiment can also have other alternative names, such as data unit, bit block, or flit. Some embodiments in this application embodiment that use code blocks as examples are also applicable to the flit scenario.
[0163] The code blocks in this application embodiment can include two main types: data type code blocks and control type code blocks. The bits in data type code blocks can be used to carry the actual data payload, while the bits in control type code blocks can be used to carry control information.
[0164] The code block of the data type can be a code block of the data type in flexE technology / MTN, or it can be a bit or multiple consecutive bits in the field carrying the payload in the data frame of OSU service.
[0165] Control-type code blocks may include at least one of the following in flexE technology / MTN: header code block, tail code block, idle code block, operation and maintenance management code block, error code block, or low-power code block. Control-type data units may also include one or more consecutive bits in the overhead region (the region carrying overhead information) of the data frame of OSU services.
[0166] (2.1) An example of the concept of “code block” as defined in the embodiments of this application in the 64B / 66B encoding format.
[0167] Figure 2b An exemplary diagram illustrates the structure of a code block in the 64B / 66B encoding format defined in the standard, such as... Figure 2b As shown, this code block is defined by IEEE Std 802.3-2018, IEEE Standard for Ethernet SECTION SIX. Figure 2b As shown, the synchronization header area of a code block includes the 0th and 1st bits of the code block. The synchronization header area has two possible values: 01 and 10. A code block with a synchronization header of 01 is called a data code block, which can be written as a D code block; a code block with a synchronization header of 10 is called a control code block. The field following the synchronization header of the control code block occupies 8 bits and can be called the type field of the control code block (the type field can be written as the type field).
[0168] The control code block may include: a header code block, a tail code block, an ordered set code block (also written as an 0 code block), an idle code block (also written as an IDLE code block), an error code block (also written as an error code block), and a low-power code block, etc. In this embodiment, the header code block is... Figure 2b The synchronization header is a 10-type code block with a 0x78 field, which can be written as an S code block. In this embodiment, the tail code block can be written as a T code block, including... Figure 2b The code block has a synchronization header of 10 and type fields of 0x87, 0x99, 0xAA, 0xB4, 0xCC, 0xD2, 0xE1, and 0xFF. In this embodiment, the O code block is... Figure 2bThe synchronization header is a code block with a type field of 0x4B. In this embodiment, the control code blocks other than the S and T code blocks can be written as C code blocks.
[0169] Figure 2c An example is shown illustrating the structure of a free code block. For example... Figure 2c As shown, the synchronization header area of the idle code block is 10, and the other contents are shown in the figure. The code blocks involved in this embodiment are... Figure 2b and Figure 2c The code block structure shown is used as an example for illustration, but the embodiments of this application are also applicable to code block forms defined by other standards, such as 8B / 10B, 256B / 257B, etc.
[0170] (2.2) An example of the concept of “code block” as defined in the embodiments of this application in the data frame of OSU service.
[0171] In the embodiments of this application, a code block refers to one or more consecutive bits. The information carried on a code block can refer to the information carried on the bits included in that code block. For ease of understanding, in OSU services, a code block is referred to as a bit block. One bit block refers to one or more consecutive bits. A code block of a data type is called a data type bit block, and a code block of a control type is called a control type bit block.
[0172] Figure 2d An exemplary diagram illustrates a possible frame structure corresponding to an OSU service, such as... Figure 2d As shown, the length of this data frame can be 192 bytes. Bytes 1 to 7 are the overhead area, and bytes 8 to 192 are the payload area. The overhead area can include general overhead, mapping overhead, and cyclic redundancy check (CRC)8.
[0173] The general overhead may include other general overhead such as version number (VER), tributary port number (TPN), and frame type (FT).
[0174] The version number (VER) can be used to identify the frame structure version. The TPN can be used to identify the correspondence between tributary ports and frames. The FT can be used to identify the frame type. Other general overhead may include functions such as connectivity verification (CV), bandwidth indication (BW), tandem connection monitoring (TCM), and path monitoring (PM).
[0175] The mapping overhead carries information related to the type of service being mapped, and different overhead functions can be set according to the different requirements of the service being carried. It is mainly divided into constant bit rate (CBR) mapping overhead and Ethernet mapping overhead. CBR mapping overhead mainly includes timestamp (TS), payload length (PLn), etc.
[0176] In the embodiments of this application, the bit block of the data type (which may also be called the code block of the data type) may include Figure 2d One or more consecutive bits in the payload area of the data frame shown. For example, bytes 8 to 192 of the data frame can be called the bit block of the data type, or the code block of the data type.
[0177] In the embodiments of this application, the control type bit block (which may also be called the control type code block) may include Figure 2d One or more consecutive bits in the overhead region of the data frame shown. For example, one bit or a string of consecutive bits in at least one of general overhead, mapping overhead, or CRC8 can be called a control type bit block, or a control type code block.
[0178] (2.2) Code block stream.
[0179] In this application embodiment, a data stream composed of code blocks is referred to as a code block stream, such as the first code block stream, the fourth code block stream, etc., involved in this application embodiment. The code block stream in this application embodiment may also have other names, such as code block sequence, etc., and no specific restrictions are imposed on the name in this application embodiment.
[0180] In the embodiments of this application, a continuous block in one of the "first code block stream," "fourth code block stream," "fifth code block stream," "sixth code block stream," "seventh code block stream," "third code block stream," and "second code block stream" may take various forms, such as the examples below:
[0181] …SDDDD…
[0182] …DDDDD…
[0183] …DDDT…
[0184] …DDDTI…
[0185] …TIIISDDD…
[0186] …TOS…
[0187] …TIOS…
[0188] In the above example, S represents the header block, D represents the data block, T represents the tail block, I represents the free block, and O represents the O block.
[0189] As can be seen from the above examples, the code block sequence in this application embodiment may include various code block types, such as S code blocks, D code blocks, and T code blocks, and may also include I code blocks, O code blocks, etc. The specific number of a code block in the code block stream is not limited; these are merely examples of possible forms of a continuous code block segment in a code block sequence in this application embodiment.
[0190] It is worth noting that one of the code block streams mentioned in the embodiments of this application, namely "first code block stream", "fourth code block stream", "fifth code block stream", "sixth code block stream", "seventh code block stream", "third code block stream" and "second code block stream", can also be the data stream of OSU service. The data stream in OSU service can include one or more Figure 2d The data frames shown can include control type bit blocks and data type bit blocks.
[0191] Based on the above, Figure 3 An exemplary diagram illustrating the interaction of a communication method provided in an embodiment of this application is shown, such as... Figure 3 As shown, the method includes:
[0192] S301, the first communication device receives the first service data stream.
[0193] In one possible implementation, the first communication device receives a first service data stream sent by the source.
[0194] S302, the first communication device generates a first code block stream based on the first service data stream. The first code block stream includes first clock frequency information.
[0195] In one possible implementation, the first clock frequency information can be used to indicate the time when the first communication device receives k first data frames of the first service data stream.
[0196] In another possible implementation, the first clock frequency information can be used to indicate the transmission duration of k first data frames of the first service data stream.
[0197] In another possible implementation, the first clock frequency information can indicate both the time when the first communication device receives k first data frames of the first service data stream and the transmission duration of the k first data frames of the first service data stream.
[0198] In S302, the first code block stream may include at least one clock frequency information, and the first clock frequency information is one of the at least one clock frequency information. The clock frequency information in this embodiment can also be replaced with other names, such as: service frame frequency, service bit rate, count value of service frame header arrival time, count difference between service frame headers, clock frequency, customer clock frequency information, etc. For ease of introduction, this embodiment will use the name "clock frequency information" as an example.
[0199] The first service data stream may include multiple data frames. For distinction, in this embodiment, the data frame (one or more consecutive data frames) corresponding to the first clock frequency information is referred to as the first data frame, and the total number of data frames corresponding to the first clock frequency information is identified as k. One clock frequency information in at least one clock frequency information in the first code block stream may correspond to one or more data frames. A clock frequency information can be used to indicate the clock frequency information at which the first communication device receives the data frame corresponding to that clock frequency information. A clock frequency information can be used to indicate the transmission duration of the data frame corresponding to that clock frequency information, or it can be understood as the duration of the data frame corresponding to that clock frequency information received by the first communication device. For example, the first clock frequency information can be used to indicate the duration for the first communication device to receive k first data frames.
[0200] S303, the first communication device sends the first code block stream.
[0201] S304, the second communication device acquires the first code block stream. The first code block stream includes first clock frequency information.
[0202] S305, the second communication device obtains k first data frames and first clock frequency information from the first code block stream.
[0203] S306, the second communication device sends k first data frames according to the first clock frequency information.
[0204] In one possible implementation, the second communication device sends the k first data frames to the receiving end, and the receiving end receives the k first data frames accordingly.
[0205] Since the first code block stream sent by the first communication device includes first clock frequency information, the second communication device can send k first data frames based on the first clock frequency information, so that the clock frequency of the k first data frames sent by the second communication device is basically consistent with the clock frequency of the k first data frames received by the first communication device, thereby solving the problem of transparent transmission of service clock frequency information.
[0206] The following describes the service data streams in the embodiments of this application. In the embodiments of this application, the data stream received by the first communication device is called the service data stream. The embodiments of this application involve multiple service data streams, such as the first service data stream, the second service data stream 1, the second service data stream 2, the second service data stream 3, etc. In the embodiments of this application, the first service data stream is used as an example to describe the service data streams in the embodiments of this application. For the relevant content of other service data streams, please refer to the relevant description of the first service data stream, which will not be repeated here.
[0207] The first service data stream in this application embodiment can be a CBR service data stream, such as including but not limited to European transmission level 1 (E1), synchronous (STM-1), CPRI, and serial digital information (SDI).
[0208] The first service data stream in this application embodiment can also be a type of data stream that does not have an Ethernet frame format but has a fixed rate and a time division multiplexing (TDM) frame structure. This type of data stream can also be called CBR service.
[0209] The following tables 1 and 2 exemplarily illustrate the relevant information of several business data flows. The business data flows in the embodiments of this application (such as the first business data flow, the second business data flow 1, the second business data flow 2, the second business data flow 3, etc.) can be the business data flows exemplified in tables 1 and 2.
[0210] For clarity, some of the English abbreviations used in Tables 1 and 2 can be found elsewhere in this application, while others can be found as follows:
[0211] Megabyte (MB) (MB can also be abbreviated as G), Bit per second (bit / s), Gigabit Byte (GB) (GB can also be abbreviated as G), Synchronous optical network (SONET), Optical carrier (OC), Generic requirement (GR), Core (CORE), American National Standards Institute (ANSI), Plesiochronous digital hierarchy (PDH), Transmission Level 1 (T1), Fast Ethernet (FE), Institute of Electrical and Electronics Engineers (IEEE), Gigabit Ethernet (GE), 10 Gigabit Ethernet (10GE), Local area network (LAN), Wide area network (WAN), Storage area network (SAN), Fiber channel (FC), Fiber connection (fiber) Connector (FICON), Enterprise System Connection Architecture (ESCON), Fiber Distributed Data Interface (FDDI), Idle Speed Control (ISC), International Organization for Standardization (ISO), International Business Machines Corporation (IBM), Geographically Dispersed Parallel System (GDPS), Optical Transform Unit (OTU), Enhanced Common Public Radio Interface (eCPRI).Open BaseStation Architecture Initiative (OBSAI), Reference Point (RP), European Standards (… NORM (EN), Digital Video Broadcasting Asynchronous Serial Interface (DVB-ASI), Standard Definition Serial Digital Interface (SD-SDI), High Definition Serial Digital Interface (HD-SDI), 3G Serial Digital Interface (3G-SDI), Society of Motion Picture and Television Engineers (SMPTE), Recommended Standard (RS), Electronic Industries Association (EIA), Registered Jack (RJ).
[0212] Table 1. Relevant information for several business data flows
[0213]
[0214] Table 2. Relevant Information on Several Business Data Flows
[0215]
[0216] In S302, at least one clock frequency information in the first code block stream may further include second clock frequency information. For distinction, in this embodiment, the data frame (one or more consecutive data frames) corresponding to the second clock frequency information is referred to as the second data frame, and the number of second data frames can be one or more. The second clock frequency information can be used to indicate the transmission duration of the second data frame in the first service data stream.
[0217] In one possible implementation, each clock frequency information in the at least one clock frequency information corresponds to k data frames. In this case, the second clock frequency information is used to indicate the transmission duration of k second data frames of the first service data stream and / or the transmission time when the first communication device receives the k second data frames. It can also be understood that, for the first service data stream, the first communication device determines the clock frequency information for each k data frames every k data frames. After S304, the second communication device can also obtain the second clock frequency information and k second data frames from the first code block stream, and send the k second data frames according to the second clock frequency information. For details regarding the second clock frequency information, please refer to the relevant content regarding the first clock frequency information; further details will not be repeated here.
[0218] In another possible implementation, the number of second data frames may be different from the number of first data frames. When the number of first data frames and second data frames is different, the first communication device can send the number of data frames corresponding to the first clock frequency information and the number of data frames corresponding to the second clock frequency information to the second communication device, so that the second communication device can determine the data frames corresponding to the first clock frequency information and the second clock frequency information respectively.
[0219] In S302, the first clock frequency information can have the following multiple implementation methods, which are illustrated below by examples of implementation methods a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 and a11.
[0220] Implementation method a1:
[0221] In implementation method a1, the first clock frequency information includes a first count value, which is the number of cycles of the clock frequency of the local clock signal of the first communication device during the duration of receiving k first data frames. The first clock frequency information can be used to indicate the transmission duration of k first data frames of the first service data stream.
[0222] The period of the clock frequency in the embodiments of this application can also be referred to as the clock period, oscillation period, etc. The duration of one period of the clock frequency is the reciprocal of the clock frequency. The number of periods of the clock frequency of the local clock signal of the first communication device can also be referred to as: the number of clock periods of the local clock signal of the first communication device, the number of oscillation periods, and the number of oscillations, etc.
[0223] Figure 4a An exemplary flowchart illustrates a data transmission method on the first communication device side provided in an embodiment of this application, such as... Figure 4aAs shown, the first communication device receives a first service data stream. The first service data stream can be a constant-rate service, and its bit rate can be denoted as R. client The first service data stream can be sent from the source communication device to the first communication device with a width of n bits, where n is a positive integer.
[0224] Furthermore, the first communication device can use a statistics module to count the first clock frequency information of the k first data frames of the first service data stream. Specifically, it can identify the frame header of the first first data frame among the k first data frames and start a counter (for example, the first communication device starts the counter at the moment of receiving the first bit of the frame header of the first first data frame). The counter is used to measure the clock frequency of the local clock signal of the first communication device (the clock frequency of the local clock signal of the first communication device can be denoted as f). source The counter is counted based on the number of cycles of the k-th first data frame. The counting continues until the end of the k-th first data frame is identified, at which point the counter stops (for example, the first communication device stops the counter at the moment of receiving the last bit of the end of the k-th first data frame). The value of the counter at this point is the first count value. In this embodiment, the first count value can be represented as N. source Furthermore, the first communication device can encapsulate the first service data stream to obtain a first code block stream, place the first count value in the first code block stream, and send the first code block stream to the second communication device.
[0225] It should be noted that, in this embodiment, the frame header of the data frame in the first service data stream includes a frame header identifier, which the first and second communication devices can use to identify the frame header of the data frame. Similarly, the frame trailer of the data frame includes a frame trailer identifier, which the first and second communication devices can use to identify the frame trailer of the data frame. The data frame can be a PCM frame. In specific implementations, the length of one PCM frame can be 256 (32*8=256) bits.
[0226] Figure 4b An exemplary diagram illustrating the counting of the first count value is shown, such as... Figure 4b As shown, a square wave in the first service data stream can represent the transmission duration of k data frames, for example... Figure 4bThe diagram shows the transmission duration of k first data frames and k second data frames. At the moment of receiving the header of the first first data frame, a counter is started to count the number of cycles of the local clock frequency of the first communication device's local clock signal. This counting continues until the moment of receiving the tail of the kth first data frame, at which point the counter stops counting, and the current counter value becomes the first count value. For example, the transmission duration of a PCM frame may include one cycle of the 8kHz local clock signal of the first communication device, or it may include 256 cycles of the 2.048MHz local clock signal of the first communication device.
[0227] Similarly, at the moment of receiving the header of the first second data frame, a counter is started to count the number of cycles of the clock frequency of the local clock signal of the first communication device until the moment of receiving the tail of the kth second data frame, at which point the counter stops counting, and the current value of the counter is the second clock frequency information. Figure 4b The example shown is that the kth first data frame and the 1st second data frame are two consecutive data frames. In practical applications, the relationship between the kth first data frame and the kth second data frame is not limited.
[0228] Figure 4c An exemplary flowchart illustrates a data transmission method on the second communication device side provided in an embodiment of this application, such as... Figure 4c As shown, the second communication device acquires the first code block stream. It extracts the first clock frequency information (i.e., the first count value N) from the first code block stream. source In a scenario where the local clock signal of the second communication device is frequency-synchronized with the local clock signal of the first communication device, the second communication device can output a working clock signal based on its local clock signal and the first clock frequency information. The clock frequency of this working clock signal is the clock frequency indicated by the first clock frequency information. The second communication device can combine a phase detector, a phase-locked loop (PLL), and a filter to implement the above-mentioned scheme of outputting a working clock signal based on the local clock signal and the first clock frequency information of the second communication device. The PLL and the filter are cascaded. The phase detector can also be considered as an internal structure of the PLL. The input to the phase detector can be the local clock signal of the second communication device and the clock frequency indicated by the first clock frequency information. Based on the output value of the phase detector and the local clock signal of the second communication device, the PLL and the filter output the working clock signal.
[0229] On the other hand, the second communication device can decapsulate the first code block stream to obtain k first data frames from the first service data stream. Furthermore, the second communication device can transmit the k first data frames at the clock frequency indicated by the first clock frequency information.
[0230] As can be seen from implementation method a1, based on the frequency synchronization of the first communication device and the second communication device, the first communication device and the second communication device can solve the problem of transparent transmission of clock frequency information of the service by transmitting the first count value. The solution is relatively simple, and the number of bits occupied by the transmitted first count value can be less.
[0231] In another possible implementation, the local clock signals of the first and second communication devices have the same frequency and are frequency-synchronized. For example, both the local clock signals of the first and second communication devices are 100MHz signals. In this case, the second communication device can send the k second data frames based on the clock frequency information of the k first data frames indicated by the first count value, thereby solving the problem of transparent transmission of the clock frequency information of the service.
[0232] Implementation method a2:
[0233] In implementation method a2, the first clock frequency information includes a second count value, which is the difference between the first count value and a pre-designed value. The first clock frequency information can be used to indicate the transmission duration of k first data frames of the first service data stream.
[0234] The only difference between implementation a2 and implementation a1 is that the first clock frequency information is the second count value instead of the first count value. All other details are the same as in implementation a1 and will not be repeated here. It should be noted that the second count value may be positive or negative. In one possible implementation, the first clock frequency information may include two parts: one part is the sign (positive or negative) of the second count value, and the other part includes the absolute value of the second count value.
[0235] In implementation a2, a reference clock signal can be set, the clock frequency of which is f. ref The clock frequency f of the reference clock signal ref This can also be called the reference clock frequency. For a given preset duration, the number of cycles of the reference clock signal's clock frequency within that preset duration is a pre-designed value, which can be denoted as N. ref For example, the first communication device may have a preset reference clock signal with no frequency offset, f ref =155.52MHz, and the transmission time of a data frame is, for example, 125 microseconds. Then, the number of clock cycles included in the reference clock signal within 125 microseconds can be used as the pre-design value.
[0236] In one possible implementation, the pre-designed value can be defined as: N ref f is within the preset duration refThe number of clock cycles is an integer. In one possible implementation, to reduce the number of bits occupied by the first clock frequency information transmitted from the first communication device to the second communication device, the problem of transparent transmission of the service's clock frequency information can be solved by transmitting the difference between the first count value and a pre-designed value. To further reduce the number of bits occupied by this difference, the pre-designed value can be made closer to the first count value. In one possible implementation, a preset duration can be set based on the average transmission duration of k data frames of the first service data stream. For example, the preset duration is equal to the average transmission duration of at least one set of data frames (a set of data frames includes k data frames) of the first service data stream, or the preset duration is close to the average transmission duration of at least one set of data frames of the first service data stream. In another possible implementation, the difference between the preset duration and the transmission duration of the k first data frames is less than a preset difference threshold.
[0237] In another possible implementation, the first communication device can be configured with k values. The first communication device then determines the number of bits *r* in the k data frames, and multiplies *r* by the transmission duration of each bit; the resulting value can be used as the preset duration. The transmission duration of each bit can be determined based on the transmission rate of the service data stream corresponding to the k data frames. In this implementation, it can also be understood as assuming that the actual frequency of the local clock is equal to the clock frequency of the service data stream corresponding to the k data frames, and using the recorded transmission duration of the k data frames as the preset duration. This implementation shows that as long as the value of *k* is configured, the first communication device can determine the preset duration. This scheme provides a possible implementation for determining the preset duration, and it only requires configuring the value of *k*, making it relatively simple and easy to promote.
[0238] The scheme implemented by the second communication device is similar to that in embodiment a1, except that when acquiring the first clock frequency information, it acquires the second count value. The second communication device can acquire a pre-designed value in advance, and then calculate the first count value based on the pre-designed value. In another possible embodiment, the local clock signal of the first communication device and the local clock signal of the second communication device have the same frequency and are frequency synchronized. For example, both the local clock signal of the first communication device and the local clock signal of the second communication device are 100MHz signals. In this case, the second communication device can send the k second data frames based on the clock frequency information of the k first data frames indicated by the second count value, thereby solving the problem of transparent transmission of the service's clock frequency information. Then, it sends the k first data frames based on the first count value; this step can be referred to the aforementioned embodiment a1 and will not be repeated here.
[0239] Implementation method a3:
[0240] In implementation method a3, the first clock frequency information includes a second count value and a pre-designed value. The first clock frequency information can be used to indicate the transmission duration of k first data frames of the first service data stream.
[0241] The difference between implementation method a3 and implementation method a2 is that, in addition to transmitting the second count value to the second communication device, the first communication device also transmits a pre-designed value. For the rest, please refer to implementation method a2 and will not be repeated here.
[0242] In one possible implementation, the transmission periods for the second count value and the pre-designed value can be set separately. For example, the transmission period for the pre-designed value can be longer than the transmission period for the second count value. In this way, the number of times the pre-designed value is transmitted can be reduced, thus saving resources.
[0243] In this embodiment, a pre-designed value can be set for the first service data stream. The first communication device can transmit the pre-designed value to the second communication device through the clock frequency information corresponding to the first service data stream (e.g., the first clock frequency information). In another possible implementation, the first communication device can also transmit the pre-designed value to the second communication device multiple times through multiple clock frequency information of the first service data stream. For example, the pre-designed value can be carried in each clock frequency information of the first service data stream. In yet another possible implementation, multiple pre-designed values can be set for the first service data stream, and each pre-designed value can correspond to one or more sets of data frames (each set of data frames can include k data frames).
[0244] Implementation method a4:
[0245] In implementation method a4, the first clock frequency information includes the reception time of the frame header of the first data frame out of the k first data frames, and the reception time of the frame tail of the kth first data frame out of the k first data frames. The first clock frequency information can be used to indicate the time when the first communication device receives the k first data frames of the first service data stream.
[0246] In implementation a4, since in one possible implementation, the second communication device can calculate the transmission duration of k first data frames based on two moments in the first clock frequency information, it can also be understood that the first clock frequency information indicates the transmission duration of k first data frames of the first service data stream.
[0247] In implementation method a4, the first clock frequency information can also be understood as including two timestamps, namely timestamp 1 and timestamp 2. Timestamp 1 is the time when the frame header (e.g., the first bit of the frame header) of the first data frame is received, and timestamp 2 is the time when the frame tail (e.g., the last bit of the frame tail) of the kth first data frame is received.
[0248] The second communication device can determine the transmission duration of k first data frames of the first service data stream based on the first clock frequency information (by calculating the difference between two timestamps in the first clock frequency information). Then, it can calculate the transmission duration of the k first data frames and send k first data frames within that transmission duration. This ensures that the transmission duration of the k first data frames sent by the second communication device is equal to or substantially equal to the transmission duration of the k first data frames received by the first communication device, thereby solving the problem of transparent transmission of the service clock frequency information.
[0249] In one possible implementation, the first clock frequency information can occupy 32 bits, with the unit being nanoseconds. For example, timestamp 1 is: 0000 0000 0000 0000 0000 0000 0000 0001. Timestamp 2 is: 0000 0000 00000000 0000 0000 1000 0000. The time difference between timestamp 2 and timestamp 1 is 127 nanoseconds, meaning the transmission time for k first data frames is 127 nanoseconds.
[0250] Furthermore, the second communication device can generate a working clock signal that conforms to the clock frequency of k first data frames received by the first communication device from the difference between the two timestamps in the first clock frequency information and the local clock signal of the second communication device, and send k first data frames based on the working clock signal. For example, the clock frequency of the working clock signal can be calculated using the formula (Δt1 / (1 / f_local)), where Δt1 is the difference between the two timestamps in the first clock frequency information and f_local is the clock frequency of the local clock signal of the second communication device. The units of the numerator and denominator in this formula can be unified to nanoseconds.
[0251] In another possible implementation, the second communication device may not calculate the transmission duration of the k first data frames, but instead directly send the k second data frames based on the clock frequency information of the k first data frames indicated by two timestamps. For example, the second communication device records the reception time "timestamp 3" of the frame header (e.g., the first bit of the frame header) of the first data frame received by the second communication device. The time difference Δt2 between timestamp 3 and timestamp 1 is calculated. Further, the second communication device records the reception time "timestamp 4" of the frame tail of the k first data frames received by the second communication device, then calculates the time difference Δt3 between timestamp 4 and timestamp 2, and compares Δt3 with Δt2. In practical applications, it can be assumed that the minimum network latency is fixed within a certain time period, and that this minimum latency can be obtained probabilistically within a certain time period. When the difference between Δt3 and Δt2 is less than a set threshold, if Δt3 is less than Δt2, it indicates that the data transmission frequency of the second communication device is too slow, and the second communication device can appropriately increase the data transmission frequency. If Δt3 is greater than Δt2, it means that the data transmission frequency of the second communication device is too fast, and the second communication device can appropriately slow down the data transmission frequency.
[0252] In another possible implementation, the local clock signals of the first and second communication devices are frequency-synchronized. In this case, the local clock signals of the first and second communication devices may have the same or different frequencies. The second communication device can send the k second data frames based on the clock frequency information of the k first data frames indicated by the two timestamps, thereby solving the problem of transparent transmission of service clock frequency information.
[0253] Implementation method a5:
[0254] In implementation method a5, the first clock frequency information includes a first duration, which is the transmission duration of k first data frames.
[0255] In one possible implementation, the first communication device can count a first count value over the transmission duration of k first data frames. Then, it calculates the first duration corresponding to the first count value, for example, using the formula Δt2 = N. source *(1 / f source ), perform the calculation, in this formula, N source f is the first count value. source Let t2 be the clock frequency of the local clock signal of the first communication device, where * indicates multiplication, / indicates division, and Δt2 represents the first duration. The unit of Δt2 may be nanoseconds or seconds.
[0256] In another possible implementation, the first communication device can start a timer at the moment of receiving the header of the first first data frame in the k first data frames, and stop the timer at the moment of receiving the header of the first first data frame in the k first data frames. The current value of the timer is the first duration.
[0257] On the other hand, the second communication device can decapsulate the first code block stream to obtain k first data frames from the first service data stream. Furthermore, the second communication device can send the k first data frames for a first duration indicated by the first clock frequency information; for example, the transmission duration of the k first data frames sent by the second device can also be controlled within the first duration. This solves the problem of transparent transmission of the service's clock frequency information.
[0258] As can be seen from implementation method a5, the first and second communication devices can solve the problem of transparent transmission of service clock frequency information by transmitting a first duration, which is a relatively simple solution. Furthermore, the second communication device does not need to perform calculations based on pre-designed values or the clock frequency of the reference clock signal.
[0259] In another possible implementation, the local clock signals of the first and second communication devices are frequency-synchronized. In this case, the local clock signals of the first and second communication devices may have the same or different frequencies. The second communication device can transmit the k second data frames based on the clock frequency information of the k first data frames indicated by the first duration, thereby solving the problem of transparent transmission of service clock frequency information.
[0260] Implementation method a6:
[0261] In implementation method a6, the first clock frequency information can be used to indicate the time when the first communication device receives k first data frames of the first service data stream. The first clock frequency information includes the reception time of the frame header of the first data frame among the k first data frames. Specifically, the reception time of the frame header of the first data frame among the k first data frames included in the first clock frequency information is: the time when the first communication device receives the frame header of the first data frame among the k first data frames.
[0262] If a data frame corresponding to a clock frequency is called a group of data frames, for example, since the first clock frequency information indicates the transmission duration of k first data frames, then k first data frames can be called a group of data frames. Similarly, if the second clock frequency information indicates the transmission duration of k second data frames, then k second data frames can also be called a group of data frames. Thus, in one possible implementation, the second communication device can calculate the transmission duration of a group of data frames based on the difference in the first clock frequency information included in two adjacent groups of data frames.
[0263] For example, k first data frames are called the first group of data frames, and k second data frames are called the second group of data frames. If the k second data frames are received after the k first data frames, that is, the first group of data frames and the second group of data frames are two consecutive groups of data frames, in this case, after the second communication device obtains the first clock frequency information corresponding to the first group of data frames (k first data frames) and the second clock frequency information corresponding to the second group of data frames (k second data frames), the second communication device can subtract the time indicated by the first clock frequency information from the time indicated by the second clock frequency information. The resulting value is the transmission duration of the first group of data frames (k first data frames). It should be noted that in the embodiments of this application, the number of data frames included in any two groups of data frames can be equal or unequal. This embodiment uses a group of data frames including k data frames as an example for illustration.
[0264] In combination with the above Figure 4b For example, Figure 4b The k first data frames and k second data frames constitute 2k consecutive data frames. Since the reception time of the tail of the kth first data frame is close to the reception time of the header of the first second data frame, in one possible implementation, they can be understood as being approximately equal. The first clock frequency information is the reception time of the header of the first first data frame, and the second clock frequency information is the reception time of the header of the first second data frame. After receiving the first clock frequency information and the second clock frequency information, the second device can subtract the reception time of the header of the first first data frame from the reception time of the header of the first second data frame to obtain the transmission duration of the k first data frames. In this example, the first clock frequency information can also be understood as indicating the transmission duration of the k first data frames of the first service data stream.
[0265] As can be seen from implementation method a6, the first and second communication devices can solve the problem of transparent transmission of service clock frequency information by transmitting the reception time of the frame header of the first data frame in a set of data frames. The solution is relatively simple, and the number of bits occupied by the transmitted information is small. Furthermore, the second communication device does not need to perform calculations based on pre-designed values, the clock frequency of the reference clock signal, etc.
[0266] In another possible implementation, the second communication device may not calculate the transmission duration of the k first data frames, but instead directly send data frames based on the two timestamps corresponding to the two sets of data frames. For example, the second communication device records the reception time (timestamp 3) of the frame header (e.g., the first bit of the frame header) of the first data frame of the k first data frames received by the second communication device, and records the reception time (timestamp 5) of the frame header (e.g., the first bit of the frame header) of the first data frame of the k second data frames received by the second communication device. Further, the second communication device calculates the time difference Δt2 between timestamp 3 and the reception time (timestamp 1) of the frame header of the first data frame of the k first data frames received by the first communication device, and calculates the time difference Δt4 between timestamp 5 and the reception time (timestamp 6) of the frame header of the first data frame of the k second data frames received by the first communication device, and then compares Δt4 with Δt2. In practical applications, it can be assumed that the minimum network latency is fixed within a certain time period, and that this minimum latency can be obtained probabilistically within a certain time period. If the difference between Δt4 and Δt2 is less than a set threshold, and Δt4 is less than Δt2, it indicates that the data transmission frequency of the second communication device is too slow, and the second communication device can appropriately increase the data transmission frequency. If Δt4 is greater than Δt2, it indicates that the data transmission frequency of the second communication device is too fast, and the second communication device can appropriately decrease the data transmission frequency. Related details of this scheme can also be found in the description of the aforementioned implementation method a4, and will not be repeated here.
[0267] In another possible implementation, the local clock signals of the first and second communication devices are frequency-synchronized. In this case, the local clock signals of the first and second communication devices may have the same or different frequencies. The second communication device can send the k second data frames based on the first clock frequency information, thereby solving the problem of transparent transmission of service clock frequency information.
[0268] Implementation method a7:
[0269] In implementation method a7, the first clock frequency information can be used to indicate the time when the first communication device receives k first data frames of the first service data stream. The first clock frequency information includes the reception time of the frame tail of the kth first data frame among the k first data frames. Specifically, the reception time of the frame tail of the kth first data frame among the k first data frames included in the first clock frequency information is: the time when the first communication device receives the frame tail of the kth first data frame among the k first data frames.
[0270] For example, k first data frames are called the first group of data frames. k fourth data frames in the first service data stream are called the third group of data frames. The fourth clock frequency information is used to indicate the transmission duration of the k fourth data frames. If the k fourth data frames are received before the k first data frames, i.e., the third group of data frames and the first group of data frames are two consecutive groups of data frames, then after the second communication device obtains the first clock frequency information corresponding to the first group of data frames (k first data frames) and the fourth clock frequency information corresponding to the third group of data frames (k fourth data frames), the second communication device can subtract the time indicated by the fourth clock frequency information from the time indicated by the first clock frequency information. The resulting value is the transmission duration of the first group of data frames (k first data frames). It should be noted that in this embodiment, the number of data frames included in any two groups of data frames can be equal or unequal. This embodiment uses a group of data frames including k data frames as an example for illustration.
[0271] For another example, k first data frames are called the first group of data frames, and k second data frames are called the second group of data frames. If the k second data frames are received after the k first data frames, that is, the first group of data frames and the second group of data frames are two consecutive groups of data frames, in this case, after the second communication device obtains the first clock frequency information corresponding to the first group of data frames (k first data frames) and the second clock frequency information corresponding to the second group of data frames (k second data frames), the second communication device can subtract the time indicated by the first clock frequency information from the time indicated by the second clock frequency information, and the resulting value is the transmission duration of the second group of data frames (k second data frames).
[0272] In combination with the above Figure 4b For example, Figure 4b The k first data frames and k second data frames constitute 2k consecutive data frames. Since the reception time of the end of the kth first data frame is close to the reception time of the beginning of the first second data frame, in one possible implementation, they can be understood as being approximately equal. The first clock frequency information is the reception time of the end of the kth first data frame, and the second clock frequency information is the reception time of the end of the kth second data frame. After receiving the first clock frequency information and the second clock frequency information, the second device can subtract the reception time of the end of the kth first data frame from the reception time of the end of the kth second data frame to obtain the transmission duration of the k second data frames. In this example, the first clock frequency information can also be understood as indicating the transmission duration of the k first data frames of the first service data stream.
[0273] As can be seen from implementation method a7, the first and second communication devices can solve the problem of transparent transmission of service clock frequency information by transmitting the reception time of the frame tail of the first data frame in a set of data frames. The solution is relatively simple, and the number of bits occupied by the transmitted information is small. Furthermore, the second communication device does not need to perform calculations based on pre-designed values, the clock frequency of the reference clock signal, etc.
[0274] In another possible implementation, the second communication device may not calculate the transmission duration of the k first data frames, but instead directly send data frames based on the two timestamps corresponding to the two sets of data frames. This scheme can be found in the relevant description in the aforementioned implementation a6, and will not be repeated here.
[0275] In another possible implementation, the local clock signals of the first and second communication devices are frequency-synchronized. In this case, the local clock signals of the first and second communication devices may have the same or different frequencies. The second communication device can send the k second data frames based on the first clock frequency information, thereby solving the problem of transparent transmission of service clock frequency information.
[0276] Implementation method a8:
[0277] In implementation method a8, the first clock frequency information can be used to indicate the transmission duration of k first data frames of the first service data stream. The first clock frequency information includes a third count value, which is the number of cycles of the clock frequency of the local clock signal of the first communication device within a second duration. The second duration is the duration from the start of a preset time to the reception time of the frame header of the first first data frame among the k first data frames.
[0278] In this application embodiment, the preset time can be implemented in multiple ways. In one possible implementation, the first communication device can use the reception time of the frame header of the first data frame in the received first service data stream as the preset time.
[0279] In this embodiment, the first communication device and the second communication device may agree that the reception time of the frame header of the first data frame in the first service data stream received by the first communication device is the preset time. Alternatively, the first communication device may determine the position of the preset time itself, and may not send the position of the preset time to the second communication device. In yet another possible implementation, the first communication device sends an instruction message to the second communication device indicating that "the reception time of the frame header of the first data frame in the first service data stream received by the first communication device is the preset time".
[0280] In another possible implementation, a preset time can be designated at relatively long intervals, with the duration between two adjacent preset times being greater than the transmission duration of at least two sets of data frames. For example, the first communication device can designate a preset time every 3,000 data frames. In this implementation, the first communication device can send an indication to the second communication device indicating which time is the preset time, or it can choose not to indicate the location of the preset time to the second communication device.
[0281] Figure 9c An exemplary illustration shows a schematic diagram of the data frame transmission duration of a possible first service data stream provided in an embodiment of this application, such as... Figure 9c As shown, a specific time is used as the preset time. For example, the preset time is the time when the first communication device receives the first bit of the frame header of the first data frame in the first service data stream. The first communication device starts a counter with the preset time as the starting point, and the counter is used to measure the clock frequency of the local clock signal of the first communication device (the clock frequency of the local clock signal of the first communication device can be denoted as f). source The counter is counted based on the number of cycles of the first data frame. This counting continues until the header of the first data frame is identified, at which point the counter value is determined. This counter value is the third count value (i.e., the count value indicated by the first clock frequency information; in this embodiment, the first count value can be represented as N). Ksource On the other hand, the first communication device keeps the counter counting continuously until the header of the first second data frame is identified, and the value of the counter at this time is identified. This value of the counter is called the fifth count value, which is the second clock frequency information.
[0282] from Figure 9c As can be seen from this, the third count value reflects the counter's value during the second duration (duration t). 11 The fifth count value reflects the counter's count over time t. 12 The count value within.
[0283] Furthermore, in one possible implementation, the first communication device can continue counting the counter until the next preset time is reached, at which point the counter is reset and restarted. In another possible implementation, the first communication device can continue counting the counter until all data frames of the first service data stream have been received. In yet another possible implementation, the first communication device can continue counting the counter until the maximum count value is reached, in which case the counter is reset and restarted to begin counting again. The first communication device can record the time the counter restarts as a new preset time. Since the maximum count value of the counter is relatively large, the second communication device can infer whether the counter has undergone a reset and restart process based on the count value included in the received clock frequency information. Therefore, even if the first communication device does not indicate the new preset time to the second communication device, the second communication device can still send data according to the clock frequency information and solve the problem of transparent transmission of service clock frequency information. In yet another possible implementation, the first communication device can also indicate the new preset time to the second communication device.
[0284] Furthermore, the first communication device can encapsulate the first service data stream to obtain a first code block stream, place the third count value in the first code block stream, and send the first code block stream to the second communication device.
[0285] On the other hand, the second communication device can decapsulate the first code block stream to obtain k first data frames, first clock frequency information (third count value), and second clock frequency information (fifth count value) from the first service data stream. Further, the second communication device can subtract the third count value from the fifth count value to obtain the first count value. The second communication device then transmits the k first data frames according to the clock frequency corresponding to the calculated first count value.
[0286] As can be seen from implementation method a8, the first communication device and the second communication device can solve the problem of transparent transmission of clock frequency information of the service by transmitting the third count value. The solution is relatively simple and the number of bits occupied by the transmitted information is small.
[0287] In another possible implementation, the local clock signals of the first and second communication devices have the same frequency and are frequency-synchronized. For example, both the local clock signals of the first and second communication devices are 100MHz signals. In this case, the second communication device can send the k second data frames based on the clock frequency information of the k first data frames indicated by the third count value, thereby solving the problem of transparent transmission of the clock frequency information of the service.
[0288] Implementation method a9:
[0289] In implementation method a9, the first clock frequency information includes a second duration. The second duration is the duration from the start of a preset time to the reception time of the frame header of the first first data frame among k first data frames.
[0290] In one possible implementation, the first communication device can count a third count value and then calculate the second duration corresponding to the third count value, for example, based on the formula Δt. k2 =N Ksource *(1 / f source ), perform the calculation, in this formula, N Ksource The third count value, f source The clock frequency of the local clock signal of the first communication device, * indicates multiplication, / indicates division, Δt k2 Indicates the second duration. Δt k2 The unit could be nanoseconds or seconds.
[0291] In another possible implementation, the first communication device can start a timer at a preset time, and record the statistical duration of the timer at the time of receiving the header of the first first data frame in k first data frames. The current value of the timer is the second duration.
[0292] In combination with the above Figure 9c The second communication device receives k first data frames from the first service data stream and first clock frequency information (second duration). Figure 9c Duration t in 11 ) and second clock frequency information (duration corresponding to the fifth count value, Figure 9c Duration t in 12 After that, the second communication device can subtract the second duration from the duration indicated by the second clock frequency information to obtain the transmission duration of k first data frames. The second communication device then sends k first data frames according to the clock frequency corresponding to the calculated transmission duration of the k first data frames.
[0293] As can be seen from implementation method a9, the first and second communication devices can solve the problem of transparent transmission of service clock frequency information by transmitting a second duration, which is a relatively simple solution. Furthermore, the second communication device does not need to perform calculations based on pre-designed values or the clock frequency of the reference clock signal.
[0294] In another possible implementation, the local clock signals of the first and second communication devices are frequency-synchronized. In this case, the local clock signals of the first and second communication devices may have the same or different frequencies. The second communication device can transmit the k second data frames based on the clock frequency information of the k first data frames indicated by the second duration, thereby solving the problem of transparent transmission of service clock frequency information.
[0295] Implementation method a10:
[0296] In implementation a10, the first clock frequency information can be used to indicate the transmission duration of k first data frames of the first service data stream. The first clock frequency information includes a fourth count value, which is the number of cycles of the clock frequency of the local clock signal of the first communication device within a third duration. The third duration is the duration from the start of a preset time to the reception time of the end of the kth first data frame among the k first data frames. The preset time in this embodiment can be found in the foregoing description and will not be repeated here.
[0297] Figure 9d An exemplary diagram illustrates the data frame transmission duration of a possible first service data stream. For example... Figure 9d As shown, k fourth data frames, k first data frames, and k second data frames constitute 3k consecutive data frames. Figure 9d As shown, a specific time is used as the preset time. The first communication device starts a counter at the preset time, and the counter measures the clock frequency of the first communication device's local clock signal (the clock frequency of the first communication device's local clock signal can be denoted as f). source The counter is counted for the number of cycles of the first data frame. Counting continues until the end of the kth fourth data frame is identified, at which point the counter value is determined; this value is the seventh count value, which represents the fourth clock frequency information. Counting continues until the end of the kth first data frame is identified, at which point the counter value is determined; this value is the fourth count value. Conversely, the first communication device maintains continuous counting until the end of the kth second data frame is identified, at which point the counter value is determined; this value is called the sixth count value, which represents the second clock frequency information.
[0298] from Figure 9d As can be seen, the seventh count value reflects the counter's state at the third duration (duration t). 21 The fourth count value reflects the counter's count value within the third time duration (time t). 22 The sixth count value reflects the counter's count value within the time period t. 23 The count value within.
[0299] On the other hand, the second communication device receives k first data frames from the first service data stream, as well as first clock frequency information (fourth count value) and fourth clock frequency information (seventh count value). Further, the second communication device can subtract the seventh count value from the fourth count value to obtain a first count value. The second communication device then transmits k first data frames according to the clock frequency corresponding to the calculated first count value. Similarly, the second communication device can subtract the fourth count value from the sixth count value to obtain a count value corresponding to the transmission duration of k second data frames. The second communication device then transmits k first data frames according to the clock frequency indicated by the count value corresponding to the transmission duration of the calculated k second data frames.
[0300] As can be seen from implementation method a10, the first communication device and the second communication device can solve the problem of transparent transmission of clock frequency information of the service by transmitting the fourth count value. The solution is relatively simple and the number of bits occupied by the transmitted information is small.
[0301] In another possible implementation, the second communication device may not calculate the transmission duration of the k first data frames, but instead directly send data frames based on the two timestamps corresponding to the two sets of data frames. This scheme can be found in the relevant description in the aforementioned implementation a6, and will not be repeated here.
[0302] In another possible implementation, the local clock signals of the first and second communication devices have the same frequency and are frequency-synchronized. For example, both the local clock signals of the first and second communication devices are 100MHz signals. In this case, the second communication device can send the k second data frames based on the clock frequency information of the k first data frames indicated by the fourth count value, thereby solving the problem of transparent transmission of the service's clock frequency information.
[0303] Implementation method a11:
[0304] In implementation method a11, the first clock frequency information includes a third duration, which is the duration from the start of a preset time to the reception time of the end of the kth first data frame among the k first data frames.
[0305] In one possible implementation, the first communication device can count the fourth count value and then calculate the third duration corresponding to the fourth count value. The calculation method can be found in the aforementioned implementation a9, and will not be repeated here.
[0306] In another possible implementation, the first communication device can start a timer at a preset time, and record the statistical duration of the timer at the receiving time of the end of the kth first data frame in the k first data frames. The current value of the timer is the third duration.
[0307] In combination with the above Figure 9d The second communication device receives k first data frames from the first service data stream and the first clock frequency information (third duration). Figure 9d Duration t in 22 ) and the fourth clock frequency information (the duration corresponding to the seventh count value, Figure 9d Duration t in 21 After that, the second communication device can subtract the duration indicated by the fourth clock frequency information from the third duration to obtain the transmission duration of k first data frames. The second communication device then sends k first data frames according to the clock frequency corresponding to the calculated transmission duration of the k first data frames.
[0308] As can be seen from implementation method a11, the first and second communication devices can solve the problem of transparent transmission of service clock frequency information by transmitting a third duration, which is a relatively simple solution. Furthermore, the second communication device does not need to perform calculations based on pre-designed values or the clock frequency of the reference clock signal.
[0309] In another possible implementation, the local clock signals of the first and second communication devices are frequency-synchronized. In this case, the local clock signals of the first and second communication devices may have the same or different frequencies. The second communication device can transmit the k second data frames based on the clock frequency information of the k first data frames indicated by the third duration, thereby solving the problem of transparent transmission of service clock frequency information.
[0310] Based on the above, Figure 5a An exemplary embodiment of this application illustrates a possible implementation of converting a service data stream into a code block stream, which can be executed on the side of a first communication device. Figure 5a The example demonstrates the conversion of service data stream 1 into code block stream 1, where code block stream 1 is encoded in 64B / 66B format. If the first service data stream needs to be converted into the first code block stream, one possible implementation is that service data stream 1 can be the first service data stream, and code block stream 1 can be the first code block stream. The process for converting the first service data stream into the first code block stream can be found in [link to documentation]. Figure 5a The process of converting business data stream 1 into code block stream 1.
[0311] like Figure 5a As shown, service data stream 1 is a bit stream. For service data stream 1, the first communication device can extract it segment by segment in 64-bit units, obtaining multiple segments, each segment consisting of 64 bits. Then, the first communication device puts the 64 bits of each segment into the payload area of the D code block. This can also be understood as the first communication device adding a 01 synchronization header to each segment, resulting in a D code block.
[0312] Subsequently, the first communication device can add S-blocks and T-blocks to both ends of a set of D-blocks. A set of D-blocks may include one or more D-blocks. The number of D-blocks in any two sets may be equal or unequal. In one possible implementation, the number of D-blocks in any two sets of block stream 1 is equal. Figure 5a The example provided uses P D-blocks as an example, where P can be a positive integer. In this embodiment, the P D-blocks, along with the S-blocks and T-blocks preceding and following them, can be referred to as a data unit or a container. The S-block represents the beginning of the container, and the T-block represents its end. Some bits in the S-block can be used to carry container overhead, i.e., to carry the overhead information corresponding to the data unit. The process of converting the bit string in service data stream 1 into a string of D-blocks and adding S-blocks and T-blocks to both ends of the P consecutive D-blocks can be called container encapsulation.
[0313] Furthermore, the first communication device can fill code blocks, such as idle code blocks, between two adjacent data units (or containers) to match the rate of code block stream 1 with the pipeline rate. Then, code block stream 1 is mapped to the pipeline (in this embodiment, the pipeline can also be called a hard pipeline).
[0314] Figure 5b An exemplary diagram illustrates the rate relationships of various data streams during container construction, such as... Figure 5b As shown, the original rate of business data flow 1 can be less than the rate after adding container encapsulation to business data flow 1. The rate after adding container encapsulation to business data flow 1 can be less than the rate after filling the gaps between containers with idle code blocks. The rate after filling the gaps between containers with idle code blocks can be less than the rate after mapping code block flow 1 to a hard pipe.
[0315] Based on the above, Figure 5c This example illustrates one possible implementation of converting a code block stream into a service data stream in an embodiment of this application. This implementation can be executed on the side of a second communication device, and can be understood as follows: Figure 5a The reverse process. Figure 5c The example demonstrates the conversion of code block stream 1 into service data stream 1, where code block stream 1 is encoded in 64B / 66B format. If the first code block stream needs to be converted into the first service data stream, one possible implementation is that service data stream 1 can be the first service data stream, and code block stream 1 can be the first code block stream. The process for converting the first code block stream into the first service data stream can be found in [link to documentation]. Figure 5c The process of converting code block stream 1 into business data stream 1.
[0316] like Figure 5cAs shown, the second communication device receives code block stream 1. Then, the second communication device removes the code blocks used for rate adaptation between data units of code block stream 1, such as idle code blocks. Further, the second communication device extracts the overhead information carried in the S code blocks and / or T code blocks (for example, the first clock frequency information can be extracted from the S code blocks), and removes the S code blocks and T code blocks at both ends of each data unit, obtaining a code block stream composed entirely of D code blocks. Further, the second communication device removes the synchronization header of each D code block in the code block stream, resulting in a bit stream, which is the service data stream 1.
[0317] exist Figure 5a The example shown uses the example of bits in service data stream 1 being carried in the payload area of the data block of the data unit in code block stream 1. In practical applications, bits in service data stream 1 can be carried not only in the payload area of the data block of the first data unit, but also in the tail code block, such as the tail code block of T7, the tail code block of T6, etc.
[0318] It should be noted that the code blocks in code block stream 1 in this embodiment can be divided into one or more data units. Figure 5a This paper uses an example of a data unit comprising an S-block, P D-blocks, and a T-block. In practical applications, a data unit can also include multiple forms. For distinction, in this embodiment, a data unit carrying k bits corresponding to a first data frame is called a first data unit. The bits corresponding to k first data frames can carry one or more first data units. In this embodiment, all first data units carrying the bits corresponding to k first data frames are called a first data unit group. It can also be understood that a first data unit group includes W1 first data units, where W1 is a positive integer. The number of data blocks included in any two first data units can be equal or unequal.
[0319] For distinction, in this embodiment, the data unit carrying the bits corresponding to k second data frames is called a second data unit. The bits corresponding to k second data frames can carry one or more second data units. In this embodiment, all second data units carrying the bits corresponding to k second data frames are called a second data unit group. It can also be understood that the first data unit group includes W2 second data units, where W2 is a positive integer. The number of data code blocks included in any two second data units can be equal or unequal. The first code block stream also includes second clock frequency information, which is used to indicate the transmission duration of k second data frames of the first service data stream and / or the time when the first communication device receives k second data frames of the first service data stream.
[0320] Figure 5aThe example shown uses the case where any two data units in code block stream 1 contain P D code blocks. That is, the first data unit contains the same number of data code blocks as the second data unit. In practical applications, the number of data code blocks in the second data unit and the first data unit can also be different.
[0321] This application uses the first data unit as an example to introduce the data units in the first code block stream. The contents of other data units can be found in the relevant introduction of the first data unit, and will not be repeated here.
[0322] To provide flexibility in the solution, the first data unit can have various structural forms. For example, the first data unit may include one of the following:
[0323] A header block and at least one data block;
[0324] A header block, at least one data block, and a tail block;
[0325] At least one data block and one tail block;
[0326] A header code block, at least one data code block, and an operation, maintenance, and management code block;
[0327] A header block, at least one data block, a tail block, and an operation and maintenance management block; or,
[0328] At least one data block, tail block, and operation, maintenance, and management block.
[0329] In one possible implementation, the header code block can be an S code block. The tail code block can be a T code block. The data code block can be a D code block. The operation, maintenance, and management code block can be an O code block. For specific structural forms, please refer to the foregoing. Figure 2b Related content.
[0330] In this embodiment, the bits corresponding to the k first data frames can be carried in the payload area of at least one data block of the first data unit among the W1 first data units. To increase the number of bits from the service data stream carried by a data unit, the bits corresponding to the k first data frames can be carried not only in the payload area of at least one data block of the first data unit among the W1 first data units, but also in the tail block of the first data unit among the W1 first data units.
[0331] The first clock frequency information can be carried in some or all of the W1 first data units. In one possible implementation, W1 is 1, and the first data unit carries all of the first clock frequency information and k first data frames. In another possible implementation, W1 is an integer greater than 1. In this case, the first clock frequency information can be carried in one or more of the W1 first data units. In this case, a single clock frequency information can indicate the clock frequency of the bits carried by multiple data units, thereby reducing the frequency of clock frequency information transmission and saving resources.
[0332] Furthermore, the first communication device can also carry first indication information in each of the W1 first data units carrying first clock frequency information. The first indication information indicates that the first data unit carrying the first indication information carries part or all of the first clock frequency information. The first communication device can also carry second indication information in each of the W1 first data units that does not carry the first clock frequency information. The second indication information indicates that the first data unit carrying the second indication information does not carry the first clock frequency information. In this way, the second communication device can determine whether a data unit carries clock frequency information based on whether it carries the first indication information. If a data unit does not carry the first indication information, but carries the second indication information, the second communication device does not need to search for the clock frequency information, thereby improving the data processing speed of the second communication device.
[0333] The following describes the first communication device carrying the first clock frequency information through one of the W1 first data units, using the first case as an example. The second case describes the first communication device carrying the first clock frequency information through multiple of the W1 first data units.
[0334] In the first scenario, the first communication device may transmit the first clock frequency information in one of the W1 first data units, while the first communication device may not transmit the first clock frequency information in the remaining W1 first data units.
[0335] In the first scenario, this embodiment of the application may also set a field for each first data unit, such as a newly set SEQ field. The SEQ field can occupy 3 bits and is used to indicate 0-7 (a total of 8 values). The value of the SEQ field increases with the number of data units. For example, if the value of the SEQ field of the current data unit is 0, then the value of the SEQ field of the next data unit is incremented by 1, becoming 1; the value of the SEQ field of the next data unit is incremented by 1, becoming 2, and so on. When the value of the SEQ field reaches 7, it starts taking values again from 0.
[0336] For example, W1 is 4, and k first data frames are carried in 4 first data units. In another possible implementation, every k data frames in the first service data stream are carried in every 4 data units of the first code block stream. Clock frequency information can be carried in data units where the SEQ field value is 0 and the SEQ field value is 4. The clock frequency information carried in a data unit where the SEQ field value is 0 (e.g., first clock frequency information) can indicate the transmission duration of all data frames (k first data frames) from the first service data stream carried in the current data unit and the subsequent data units with SEQ field values of 1, 2, and 3 (4 first data units). Similarly, the clock frequency information carried in a data unit where the SEQ field value is 4 (e.g., second clock frequency information) can indicate the transmission duration of all data frames (k second data frames) from the first service data stream carried in the current data unit and the subsequent data units with SEQ field values of 5, 6, and 7 (4 second data units).
[0337] As can be seen from the above examples, the values of SEQ field 0 and 4 respectively correspond to the first indication information in the embodiments of this application, which indicates that the data unit carrying the first indication information carries clock frequency information. In another possible implementation, the first indication information can be understood as indicating that the data unit carrying the first indication information carries all of the clock frequency information. The values of SEQ field 1, 2, 3, 5, 6, and 7 respectively correspond to the second indication information in the embodiments of this application, which indicates that the data unit carrying the second indication information does not carry clock frequency information.
[0338] For another example, W1 is 2, and k first data frames are carried in 2 first data units. In yet another possible implementation, every k data frames in the first service data stream are carried in every 2 data units of the first code block stream. Clock frequency information can be carried in data units with SEQ field values of 0, 2, 4, and 6. The clock frequency information carried in a data unit with a SEQ field value of 0 (e.g., first clock frequency information) can indicate the transmission duration of all data frames (k first data frames) from the first service data stream carried in the current data unit and the data units (2 first data units) with a SEQ field value of 1 after that data unit. Similarly, the clock frequency information carried in a data unit with a SEQ field value of 2 (e.g., second clock frequency information) can indicate the transmission duration of all data frames (k second data frames) from the first service data stream carried in the current data unit and the data units (2 second data units) with a SEQ field value of 3 after that data unit.
[0339] As can be seen from the above examples, the values of the SEQ field 0, 2, 4, and 6 correspond to the first indication information in the embodiments of this application, which indicates that the data unit carrying the first indication information carries clock frequency information. The values of the SEQ field 1, 3, 5, and 7 correspond to the second indication information in the embodiments of this application, which indicates that the data unit carrying the second indication information does not carry clock frequency information.
[0340] The second scenario: The first communication device can transmit the first clock frequency information in multiple first data units among W1 first data units.
[0341] For example, if W1 is 4, and the first clock frequency information occupies 32 bits, the first communication device can transmit the first 16 bits of the first clock frequency information in the first data unit of W1 first data units, and the last 16 bits in the second data unit of W1 first data units. The first communication device does not transmit the first clock frequency information in the third and fourth data units of W1 first data units. That is, while the first clock frequency information is carried entirely in multiple data units of W1 first data units, in this case, one of the multiple data units can carry only a portion of the first clock frequency information.
[0342] In the second case, a SEQ field can also be set in each first data unit. The SEQ field can occupy 3 bits to indicate 0-7 (a total of 8 values).
[0343] For example, W1 is 4, and k first data frames are carried in 4 first data units. In another possible implementation, every k data frames in the first service data stream are carried in every 4 data units of the first code block stream. A 32-bit clock frequency information can be carried in data units where the SEQ field value is 0 and the SEQ field value is 1; for example, the first 16 bits of the clock frequency information can be carried in data units where the SEQ field value is 0, and the last 16 bits can be carried in data units where the SEQ field value is 1. The 32 bits of clock frequency information carried in data units where the SEQ field value is 0 and the SEQ field value is 1 (e.g., the first clock frequency information) can indicate the transmission duration of all data frames (k first data frames) from the first service data stream carried in the current two data units and the subsequent data units where the SEQ field values are 2 and 3 respectively (4 first data units). Similarly, the 32-bit clock frequency information (e.g., second clock frequency information) carried in data units with SEQ field values of 4 and SEQ field values of 5 can indicate the transmission duration of all data frames (k second data frames) from the first service data stream carried in the current two data units and the subsequent data units with SEQ field values of 6 and 7 (4 second data units).
[0344] As can be seen from the above examples, the values of the SEQ field 0, 1, 4, and 5 correspond to the first indication information in the embodiments of this application, which indicates that the data unit carrying the first indication information carries clock frequency information. In another possible implementation, the first indication information indicates that the data unit carrying the first indication information carries a portion of the clock frequency information. Thus, multiple data units can share clock frequency information, thereby increasing the number of bits used to carry the clock frequency information. The values of the SEQ field 2, 3, 6, and 7 correspond to the second indication information in the embodiments of this application, which indicates that the data unit carrying the second indication information does not carry clock frequency information.
[0345] In this application embodiment, the location where the clock frequency information of the first service data stream is carried can also be implemented in various ways. The following description uses a first data unit carrying the first clock frequency information as an example. This first data unit may carry all or only a portion of the first clock frequency information. To improve the flexibility of the solution, the first clock frequency information (which may be a portion or all of the first clock frequency information) can be carried in at least one of the following contents of the first data unit: a header code block, at least one data code block, a tail code block, or an operation, maintenance, and management code block. These are described below through implementation methods b1, b2, b3, and b4.
[0346] Implementation method b1:
[0347] In implementation b1, the first clock frequency information can be carried in the header code block of the first data unit.
[0348] The header block can be an S-code block, which can be used to identify the beginning of a data unit. Figure 6a An exemplary illustration shows a structural diagram of a first data unit carrying first clock frequency information provided in an embodiment of this application, such as... Figure 6a As shown, this data unit is Figure 5a One of the data units.
[0349] The first service data stream can be a constant rate service. A PCM frame in the first service data stream is 256 bits (32*8=256). By truncating one PCM frame into 64-bit units, four segments can be extracted. Therefore, each data unit can carry one PCM frame within a payload area of four D-code blocks.
[0350] Figure 6a The data unit is shown to have a structure of SDDDDT. The first clock frequency information can be carried in the payload area of the S-code block, for example, it can be carried after the code block type area "0x78" in the payload area. In this way, the second communication device can quickly parse the clock frequency information.
[0351] Implementation method b2:
[0352] In implementation b2, the first clock frequency information can be carried in at least one data code block of the first data unit.
[0353] Figure 6b An exemplary schematic diagram of another structure of a first data unit carrying first clock frequency information provided in an embodiment of this application is shown, such as... Figure 6b As shown, this data unit is Figure 5a One of the data units. Figure 6bThe data unit is shown to have a structure of SDDDDT. The first clock frequency information can be carried in the payload area of the first D block following the S block.
[0354] In one possible implementation, since the first clock frequency information occupies the area of the PCM frame originally used to carry the service data stream, the T code block can be replaced with a T7 code block, thus using the area of the T7 code block's payload region other than the code block type region "0xFF" to carry the PCM frame. For example... Figure 6b In the process, a maximum of 7 bytes of the D code block can be used to carry the first clock frequency information. When the T code block is T7, there are still 7 bytes of bits in the payload area of the T code block to carry the PCM frame.
[0355] Implementation method b3:
[0356] In implementation b3, the first clock frequency information can be carried in the tail code block of the first data unit.
[0357] Figure 6c An exemplary schematic diagram of another structure of a first data unit carrying first clock frequency information provided in an embodiment of this application is shown, such as... Figure 6c As shown, this data unit is Figure 5a One of the data units. Figure 6c The data unit is shown to have a structure of SDDDDT. The first clock frequency information can be carried in the payload area of the T code block. For example, if the T code block uses a T7 code block, the first clock frequency information can be carried in the payload area of the T7 code block, excluding the code block type area "0xFF". The T7 code block is just an example; other code blocks, such as T6 and T5 code blocks, can also be used.
[0358] Implementation method b4:
[0359] In implementation b4, the first clock frequency information can be carried in the operation, maintenance and management code block of the first data unit.
[0360] The operation and maintenance management code block can be a 0 code block. The operation and maintenance management code block can be located between two data units. (This is in conjunction with the above.) Figure 5a As can be seen, after adding S and T code blocks to both ends of P D code blocks, O code blocks can be inserted between the two data units, for example, O code blocks can be inserted periodically. Furthermore, Idele code blocks can be filled into the code block stream after the O code blocks are inserted to facilitate rate adaptation.
[0361] One possible code block stream form after inserting the O code block is: ...OISDDDDTIOISDDDDTIOI.... O represents the O code block, I represents the Idle code block, S represents the header code block, D represents the data code block, and T represents the tail code block.
[0362] The structure of the O code block can be found in the aforementioned... Figure 2b Related introduction, Figure 6d An exemplary duration provides a possible structural diagram of an O-code block, such as... Figure 6d As shown, the information carried by the payload area of this code block is as follows: Figure 6d As shown, it may include: a code block type area "0x4B", and the payload area carrying values that can be, in sequence: 00, type, value 1, value 2, 0xC, 0x0, value 3, value 4, sequence number, and Cyclic Redundancy Check (CRC). First clock frequency information can be carried, for example, in at least one of the values 1, 2, 3, or 4 of the 0 code block.
[0363] In another possible implementation, the first data unit may further include Figure 2d The data frame shown may include an overhead region and a payload region in its first data unit. The first clock frequency information may be carried in... Figure 2d The overhead region or payload region of the data frame shown may contain at least one of the following: general overhead, mapping overhead, or CRC8, such as the first clock frequency information carried in the overhead region. k first data frames may be carried in... Figure 2d The payload area in the data frame shown is illustrated. It should be noted that the first clock frequency information can be carried in one or more first data units. k first data frames can also be carried in one or more first data units. Specific carrying schemes are similar to those described above; for example, first data unit groups can be set up, etc., which will not be elaborated upon here.
[0364] The above description uses the sending of a first service data stream as an example. In practical applications, the source communication device can also send multiple service data streams. For example, in addition to the first service data stream, the source communication device can also send Q0 second service data streams to the first communication device, where Q0 is a positive integer.
[0365] In one possible implementation, the communication device at the source end of Q0 second service data stream is the same as that at the source end of the first service data stream, and the communication device at the destination end of Q0 second service data stream is the same as that at the destination end of the first service data stream. In this case, it can also be said that Q0 second service data streams and the first service data streams have the same source and destination.
[0366] In one possible implementation, the first communication device can acquire third indication information for Q0 second service data streams and each service data stream in the first service data stream. This third indication information indicates whether the Q0 second service data streams and the first service data stream share the same origin and destination.
[0367] For the two service data streams in the second service data stream and the first service data stream in Q0, the first communication device can determine whether the two service data streams come from the same source communication device (which can be the same logical communication device or the same physical communication device) and whether they go to the same destination communication device (which can be the same logical communication device or the same physical communication device) based on the two third indication information corresponding to the two service data streams.
[0368] For the second service data stream Q0 and the service data stream in the first service data stream, the third indication information in the service data stream can be a single piece of information, which can be used to determine whether the second service data stream Q0 and the first service data stream have the same source and destination. In another possible implementation, the third indication information can include two parts of information, such as source indication information and destination indication information. The first communication device can determine whether the two service data streams come from the same source communication device based on the source indication information of the two service data streams, and the first communication device can also determine whether the two service data streams go to the same destination communication device based on the destination indication information of the two service data streams.
[0369] For example, regarding two service data streams within the second and first service data streams in Q0, the two source indication information for these two service data streams can be two port numbers, which can be the same or different. When the two port numbers are the same, the first communication device can determine that the two service data streams originate from the same source communication device based on the source indication information corresponding to the two service data streams. When the two port numbers are different, if the first communication device determines that the two port numbers (which can be logical or physical port numbers) correspond to the same communication device (e.g., the first communication device connects to the same communication device through the two port numbers), it can also determine that the two service data streams originate from the same source communication device based on the source indication information corresponding to the two service data streams. When the two port numbers are different, if the first communication device determines that the two port numbers (which can be logical or physical port numbers) do not correspond to the same communication device (e.g., the first communication device connects to the same communication device through the two port numbers), it determines that the two service data streams do not originate from the same source communication device.
[0370] For example, regarding two service data streams within the second and first service data streams in Q0, the two third indication information for these two service data streams can be two service numbers or service type information. If the first communication device determines that the service numbers or service type information of the two services are the same, then it can determine that the two service data streams originate from the same source and originate from the same destination.
[0371] As can be seen from the above examples, the third indication information can be some configured indication information. In addition, the third indication information can also be address information, such as medium access control (MAC) address information or internet protocol (IP) address. For example, the source indication information in the third indication information can be the source address, and the destination indication information can be the destination address. If the source address of Q0 second service data streams is the same as that of the first service data stream, and the destination address of Q0 second service data streams is the same as that of the first service data stream, then Q0 second service data streams and the first service data streams can be said to have the same source and destination.
[0372] In one possible implementation, in S302 above, the first communication device can multiplex the first service data stream and Q0 second service data streams to obtain a first code block stream. Multiplexing allows for parallel processing of multiple service data streams, thereby improving the processing speed of each service data stream. There are various multiplexing methods; the specific implementation methods for the first communication device to multiplex the first service data stream and Q0 second service data streams, as well as the implementation methods on the second communication device side, are described below through implementation methods c1 and c2.
[0373] Implementation method c1:
[0374] In implementation c1, the first communication device multiplexes bit blocks from the first service data stream and Q0 second service data streams in units of consecutive bit blocks of n0 bits to obtain a first code block stream. n0 is a positive integer.
[0375] In implementation c1, the first communication device receives a first service data stream and Q0 second service data streams. Based on a preset order between the first service data stream and the Q0 second service data streams, the bit blocks in the first service data stream and the Q0 second service data streams are multiplexed in units of n0 consecutive bits to obtain a third service data stream. Then, the first communication device can generate a first code block stream based on the third service data stream.
[0376] Figure 7a An exemplary diagram illustrates the multiplexing of a block of n0 bits from a first service data stream and Q0 second service data streams. Figure 7aThis example uses Q0 as 3. The process involves multiplexing four signals (first service data stream, second service data stream 1, second service data stream 2, and second service data stream 3) to obtain the third service data stream, as shown below. Figure 7a As shown.
[0377] In this embodiment, the process by which the first communication device generates the first code block stream based on the third service data stream can be referred to the foregoing. Figure 5a The process shown, in this case, the third business data stream is Figure 5a In the data stream 1, code block stream 1 is the first code block stream. Depending on the value of n0, the D code block included in a data unit may carry multiple signals.
[0378] For k first data frames and k third data frames in each of the Q0 second service data streams, the first communication device can carry them using one data unit or multiple data units. For example, the first code block stream includes a first data unit group. The first data unit group includes W1 first data units.
[0379] When W1 is 1, one of the W1 first data units includes: bits corresponding to k first data frames in the first service data stream, and bits corresponding to k third data frames in each of the Q0 second service data streams.
[0380] When W1 is an integer greater than 1, one of the W1 first data units includes: a portion of the bits corresponding to the k first data frames in the first service data stream, and a portion of the bits corresponding to the k third data frames in each of the Q0 second service data streams.
[0381] In one possible implementation, if W1 is an integer greater than 1 and k / W1 is an integer, then one of the W1 first data units includes: bits corresponding to (k / W1) first data frames in the first service data stream, and bits corresponding to (k / W1) third data frames in each of the Q0 second service data streams.
[0382] Example 1, taking n0 as 8 as an example, in this case, the first communication device multiplexes the first service data stream and Q0 second service data streams in units of 8 bits (or 1 byte). Figure 7b An example is shown in Figure 6a The diagram shows the signals carried in the data unit, as shown below. Figure 7bAs shown, a D-code block can carry 64 bits of data, which means it can carry eight consecutive n0-bit blocks in the third service data stream. In one possible implementation, a data unit may include 16 D-code blocks. If one PCM frame is 256 bits, then one PCM frame is carried by 4 D-code blocks, and the four PCM frames of the four signals can be carried by 16 D-code blocks.
[0383] Example 2, taking n0 as 256 as an example, in this case, the first communication device multiplexes the first service data stream and Q0 second service data streams in units of 256 bits (or 32 bytes). Figure 7c An example is shown in Figure 6a The diagram shows the signals carried in the data unit, as shown below. Figure 7c As shown, one D code block can carry 64 bits of data, and four D code blocks can carry one n0 bit block in the third service data stream.
[0384] When a data unit in the first code block stream carries multiple signals, it can carry one clock frequency information. Taking the first data unit as an example, the first data unit may include: bits corresponding to k first data frames in the first service data stream, bits corresponding to k third data frames in each of the Q0 second service data streams, and the first clock frequency information. The first data unit may only include the first clock frequency information. In this case, the first clock frequency information can indicate not only the transmission duration of the k first data frames in the first service data stream, but also the transmission duration of the k third data frames in the second service data stream corresponding to the third clock frequency information. The transmission duration of the k first data frames is equal to the transmission duration of the k third data frames in the second service data stream.
[0385] In another possible implementation, the first data unit may further include multiple clock frequency information. For example, in addition to the first clock frequency information, the first data unit may also include Q0 third clock frequency information corresponding to Q0 second service data streams. The third clock frequency information among the Q0 third clock frequency information is used to indicate the transmission duration of k third data frames of the second service data stream.
[0386] Correspondingly, the second communication device can decapsulate the first code block stream after acquiring it to obtain the third service data stream. Furthermore, the second communication device can demultiplex the first code block stream in units of n0 consecutive bits to obtain the first service data stream and Q0 second service data streams.
[0387] Implementation method c2:
[0388] In implementation c2, the first communication device multiplexes the data units in the corresponding code block streams of the first service data stream and Q0 second service data streams in units of N1 data units (N1 is a positive integer) to obtain the first code block stream.
[0389] In implementation c2, the first communication device can process the first service data stream to generate a second code block stream.
[0390] This process can be found in the aforementioned document. Figure 5a In the process shown, the first service data stream can be service data stream 1, and the second code block stream can be code block stream 2.
[0391] On the other hand, the first communication device can process Q0 second service data streams to generate Q0 third code block streams. This process is described above. Figure 5a In the process shown, the second service data stream can be service data stream 1, and the third code block stream corresponding to the second service data stream can be code block stream 2.
[0392] Furthermore, the first communication device multiplexes the data in the Q0 third code block streams and the second code block stream to obtain the first code block stream. For example, the second communication device can multiplex the data units in the Q0 third code block streams and the second code block stream according to a preset order between the Q0 third code block streams and the second code block stream, using N1 data units as units, to obtain the first code block stream.
[0393] Figure 7d An exemplary illustration shows a scheme in which a first communication device multiplexes data units from Q0 third code block streams and second code block streams, with each data unit as a unit. Figure 7d As shown, the first communication device multiplexes the data from the Q0 third and second code block streams using one data unit as a unit to obtain code block stream 3. Furthermore, idle code blocks can be added between the data units of code block stream 3 for rate adaptation. Code block stream 3 with idle code blocks added can be understood as the first code block stream.
[0394] One possibility is that, in implementation, clock frequency information can be carried in each data unit. For example, the first clock frequency information can be carried in the first data unit. The second code block stream includes first data units, and the first data unit includes the first clock frequency information and k first data frames. For a third code block stream, one data unit in the third code block stream can carry k third data frames of the corresponding second service data stream and third clock frequency information. The third clock frequency information is used to indicate the transmission duration of the k third data frames of the second service data stream.
[0395] In another possible implementation, multiple consecutive data units in the first code block stream can share a single clock frequency information. That is, clock frequency information can be carried only in data units within the second code block stream, while no clock frequency information is carried in any of the Q0 third code block streams. For example... Figure 7d As shown, four consecutive data units originate from four signals. Assume these four data units include a first data unit, which contains first clock frequency information and k first data frames. In the first code block stream, the other three data units among these four consecutive data units do not carry clock frequency information. In this case, the four data units share the first clock frequency information from the first data unit. That is, the first clock frequency information is used not only to indicate the transmission duration of the k first data frames but also to indicate the transmission duration of the k third data frames carried by each of the other three data units.
[0396] Furthermore, in conjunction with the aforementioned implementation method, the first communication device can set a SEQ field in each data unit of the first code block stream. The SEQ field can occupy 3 bits and is used to indicate 0-7 (a total of 8 values). The value of the SEQ field increases with the number of data units. For example, if the value of the SEQ field of the current data unit is 0, then the value of the SEQ field of the next data unit is incremented by 1, becoming 1; the value of the SEQ field of the next data unit is incremented by 1, becoming 2, and so on. When the value of the SEQ field reaches 7, it restarts from 0.
[0397] For example, N1 is 1, W1 is 1, and k first data frames of the first service data stream are carried in one first data unit. The data unit with SEQ value 0 of the first code block stream is the data unit (from the second code block stream) carrying k data frames of the first service data stream (e.g., k first data frames), the data unit with SEQ value 1 of the first code block stream is the data unit carrying k data frames of the second service data stream 1, the data unit with SEQ value 2 of the first code block stream is the data unit carrying k data frames of the second service data stream 2, and the data unit with SEQ value 3 of the first code block stream is the data unit carrying k data frames of the second service data stream 3. If a data unit with a SEQ value of 0 carries clock frequency information (e.g., the first clock frequency information), then the clock frequency information carried in the data unit with a SEQ field value of 0 can indicate the transmission duration of all data frames from the first service data stream carried in the current data unit, as well as the transmission duration of all data frames from the second service data stream 1 carried in the data unit with a SEQ field value of 1 after the current data unit, the transmission duration of all data frames from the second service data stream 2 carried in the data unit with a SEQ field value of 2 after the current data unit, and the transmission duration of all data frames from the second service data stream 3 carried in the data unit with a SEQ field value of 3 after the current data unit. Data units with SEQ field values of 1, 2, and 3 do not carry clock frequency information.
[0398] Similarly, the data unit with SEQ value 4 in the first code block stream (the data unit from the second code block stream) is a data unit carrying k data frames of the first service data stream; the data unit with SEQ value 5 in the first code block stream is a data unit carrying k data frames of the second service data stream 1; the data unit with SEQ value 6 in the first code block stream is a data unit carrying k data frames of the second service data stream 2; and the data unit with SEQ value 7 in the first code block stream is a data unit carrying k data frames of the second service data stream 3. The data unit with SEQ value 4 carries clock frequency information. The clock frequency information carried in the data unit with SEQ value 4 can indicate the transmission duration of all data frames from the first service data stream carried in the current data unit, and can also indicate the transmission duration of all data frames from the second service data stream 1 carried in the data unit with SEQ value 5 after the current data unit, the transmission duration of all data frames from the second service data stream 2 carried in the data unit with SEQ value 6 after the current data unit, and the transmission duration of all data frames from the second service data stream 3 carried in the data unit with SEQ value 7 after the current data unit. The data units with SEQ field values of 5, 6, and 7 do not carry clock frequency information.
[0399] Correspondingly, the second communication device can remove padding information (such as idle blocks) from the first code block stream to obtain code block stream 3. Furthermore, the second communication device can demultiplex code block stream 3, for example, by demultiplexing the first code block stream into N1 data units, thereby obtaining Q0 third code block streams and the second code block stream. The second communication device can obtain k first data frames and first clock frequency information of the first service data stream from the second code block stream. For the third code block stream in the Q0 third code block streams, the second communication device can also process the third code block stream to obtain k third data frames in the corresponding second service data stream.
[0400] The solution provided in this application embodiment can be applied to large-particle pipelines. In this case, before S303, the first communication device can also acquire Q1 fourth code block streams, where Q1 is a positive integer. In S303, the first code block stream can perform time-division multiplexing on the code blocks in the Q1 fourth code block streams and the first code block stream according to the correspondence between the Q1 fourth code block streams and the first code block stream and S1 first time slots, respectively, to obtain a fifth code block stream, and then send the fifth code block stream. One code block stream in the Q1 fourth code block streams and the first code block stream corresponds to at least one first time slot in the S1 first time slots. S1 is an integer not less than (Q1+1).
[0401] Correspondingly, the second communication device acquires the fifth code block stream, and demultiplexes the fifth code block stream according to the correspondence between Q1 fourth code block streams and the first code block stream and S1 first time slots, respectively, to obtain Q1 fourth code block streams and the first code block stream.
[0402] This solution can be combined with the aforementioned Figure 2a Therefore, when the solution provided in this application is applied to a large-particle pipeline scenario, both the first code block stream and the Q1 fourth code block stream can be the code block stream corresponding to the large-particle pipeline (e.g., Figure 2a (Code block streams 511, 611, and 411, etc.). The fifth code block stream can be one of the aforementioned... Figure 2a Code block stream 1211. The first time slot can be... Figure 2a The large-particle pipeline mentioned above corresponds to a time slot, for example, a first time slot can correspond to one 5G time slot.
[0403] The following description uses a 5Gbps time slot channel of FlexE as a large-granularity pipeline. It should be noted that the bandwidth of a large-granularity pipeline in this embodiment is not limited to 5Gbps, but can also be 6Gbps, 7Gbps, etc.
[0404] Figure 8An exemplary diagram illustrates the structure of a flexible Ethernet protocol frame format (code block stream 1211 data frame format) provided in an embodiment of this application. Figure 2a The frame format in the code block stream 1211 output by the first communication device can be a flexible Ethernet protocol frame format, such as... Figure 8 As shown, the Flexible Ethernet protocol can construct a fixed frame format for physical port transmission and perform TDM-based time slot division. For a 100GE PHY port, the data block stream can consist of 64B / 66B blocks with a period of 20, corresponding to 20 time slots, each with a bandwidth of 5Gbps, called a time slot.
[0405] The code block stream corresponding to the large-particle pipeline is multiplexed according to 20 time slots to construct a time-division multiplexed frame.
[0406] like Figure 8 As shown, Flexible Ethernet can be built on a time-division multiplexed frame structure based on 64B / 66B code blocks. Data on each PHY of FlexE is aligned by periodically inserting FlexE overhead (OH) code blocks, for example, inserting one 66B overhead code block FlexE OH every 1023x20 66B payload data code blocks.
[0407] like Figure 8 As shown, 8 rows (each row includes 1 OH code block + 1023x20 data) of 66B code blocks constitute a protocol frame under the Flexible Ethernet Protocol (the protocol frame can also be called a basic frame, base frame, single frame, etc.). Figure 8 As shown, 32 protocol frames under the Flexible Ethernet Protocol constitute a multiframe under the Flexible Ethernet Protocol.
[0408] In one possible implementation, the FlexE OH can define two management channels, which can be used to run management and OAM communication links for two Ethernet protocols at 1.2Mb / s and 1.8Mb / s based on 64B / 66B code block stream encoding. Furthermore, in this embodiment, 64B / 66B encoding can be used in a 100GE physical layer scenario. ITU-T MTN reuses the FlexE frame structure, so its frame structure is the same and will not be described further.
[0409] In another possible implementation, the solution provided in this application embodiment can be applied to small particle pipelines. In this case, before S303, the first communication device can also acquire Q1 fourth code block streams, where Q1 is a positive integer. In S303, the first code block stream can perform time-division multiplexing on the code blocks in the Q1 fourth code block streams and the first code block stream according to the correspondence between the Q1 fourth code block streams and the first code block stream and S1 first time slots, respectively, to obtain a fifth code block stream. One code block stream in the Q1 fourth code block streams and the first code block stream corresponds to at least one first time slot in the S1 first time slots. S1 is an integer not less than (Q1+1).
[0410] Further, the first communication device acquires Q2 sixth code block streams, where Q2 is a positive integer. Based on the correspondence between the Q2 sixth code block streams and the fifth code block stream and S2 second time slots respectively, the first communication device performs time-division multiplexing on the code blocks in the Q2 sixth code block streams and the fifth code block stream to obtain a seventh code block stream, and then transmits the seventh code block stream. One of the Q2 sixth code block streams and the fifth code block stream corresponds to at least one of the S2 second time slots. S2 is an integer not less than (Q2+1). The second time slot corresponding to the fifth code block stream is divided into S1 first time slots.
[0411] Correspondingly, the second communication device acquires the seventh code block stream, and demultiplexes it according to the correspondence between S2 second time slots and Q2 sixth and fifth code block streams to obtain Q2 sixth and fifth code block streams. Further, the second communication device acquires the fifth code block stream, and demultiplexes it according to the correspondence between Q1 fourth and first code block streams and S1 first time slots to obtain Q1 fourth and first code block streams.
[0412] This solution can be combined with the aforementioned Figure 2a As can be seen, when the solution provided in this application embodiment is applied to a small particle pipeline scenario, both the first code block stream and the Q1 fourth code block stream can be... Figure 2a The code block stream corresponding to the small-granularity pipeline (e.g., the code block streams corresponding to small-granularity service 1, small-granularity service 2, etc.). The fifth code block stream can be the aforementioned... Figure 2a Code block stream 411. The first time slot can correspond to Figure 2a The small-particle pipeline mentioned above corresponds to a sub-time slot; for example, a first time slot can correspond to one 10M sub-time slot. The large-particle pipeline corresponding to the sixth code block stream in Q2 (e.g., the code block stream...) Figure 2a (e.g., code block streams 511 and 611 in the code block stream). The seventh code block stream can be... Figure 2a The code block stream is 1211. The second time slot can be... Figure 2a The large-particle pipeline mentioned above corresponds to a time slot, for example, a second time slot can correspond to one 5G time slot.
[0413] The following is combined Figure 2a as well as Figure 9a and Figure 9b This paper introduces the flexible fine granularity basic unit (fgBU) frame format in small-granular time slots.
[0414] In this embodiment, a large granular pipeline is divided into at least two small granular pipelines. The bandwidth of a small granular pipeline is less than the bandwidth of the large granular pipeline to which it belongs. This embodiment uses an example of a large granular pipeline with a bandwidth of 5Gbps and a small granular pipeline with a bandwidth of 10Mbps for illustrative purposes. The bandwidths of the two large granular pipelines can be equal or unequal. The bandwidths of any two small granular pipelines obtained from dividing a large granular pipeline can also be equal or unequal. To more clearly illustrate this embodiment, the following description uses an example where each large granular pipeline has a bandwidth of 5Gbps and each small granular pipeline has a bandwidth of 10Mbps. A time slot corresponding to a large granular pipeline can be divided into 480 sub-time slots. Furthermore, a correspondence can be established between these 480 sub-time slots and small granular services, allowing data multiplexing of each small granular service based on this correspondence.
[0415] Figure 9a An exemplary embodiment of this application provides a flexible fine granularity basic unit (fgBU) format (the code block stream corresponding to small granularity service 1). The code block stream output by the large granularity pipeline 40 is obtained by multiplexing data from multiple small granularity pipelines; that is, the frame format in the code block stream 411 output by the large granularity pipeline 40 can be called the fgBU frame format. Figure 9a As shown, the large particle pipeline 40 is divided into 480 small particle pipelines 401. Each small particle pipeline corresponds to a sub-time slot. Based on the correspondence between the sub-time slots and the small particle services, each small particle service is multiplexed to obtain the multiplexed code block stream (the code block stream output by the large particle pipeline 40 is shown in the figure).
[0416] The code block stream after multiplexing small-granularity services includes at least one multiframe, where one multiframe consists of 20 basic frames (e.g., ...). Figure 9a The basic frames (0 to 19) in this application include 24 sub-time slot resources. A multiframe may include all 480 sub-time slot resources of a large granular pipeline. The basic frames in this application embodiment may also be referred to as fine granularity basic units (fgBU) or small granular base frames.
[0417] like Figure 9aAs shown, the basic frame structure can consist of 1 S-block + 195 D-blocks + 1 T-block, with a total length of 197 66-bit blocks. The first data block following the S-block carries overhead information, with a total of 7 * 8 bits = 56 bits available for this information. Within the 24 sub-slot resources of a single basic frame, eight 65-bit blocks can be transmitted per sub-slot.
[0418] Figure 9b An exemplary diagram of a basic frame 0 of a code block stream 411 is shown, such as Figure 9b As shown, the sub-time slots corresponding to small-granularity service 1 are sub-time slots 0 and 1. For example, if the bandwidth of small-granularity service 1 is increased, it is now also allocated sub-time slot 7. The sub-time slot allocated to small-granularity service 2 is sub-time slot 2. One customer in Q1 can correspond to one or more sub-time slots out of the 480 sub-time slots included in a large-granularity pipeline. Alternatively, one or more sub-time slots out of the 480 sub-time slots may not be allocated to any customer.
[0419] The first communication device can encapsulate the data corresponding to small-granularity service 1 to obtain the code block stream corresponding to small-granularity service 1, and encapsulate the data corresponding to small-granularity service 2 to obtain the code block stream corresponding to small-granularity service 2. The first communication device can multiplex the code block streams corresponding to small-granularity service 1 and small-granularity service 2 according to the correspondence between small-granularity service 1 and small-granularity service 2 and sub-time slots to obtain code block stream 4.
[0420] Figure 9b Taking 64-bit / 66-bit code blocks in the code block stream as an example, we will further compress the synchronization header region of the code blocks in code block stream 4 to obtain code block stream 5. Specifically, the compression method could be to compress a 2-bit synchronization header region into a 1-bit synchronization header region. For example, if the synchronization header is 01, it will be compressed to 0; if the synchronization header is 10, it will be compressed to 1. Furthermore, the first communication device can place the bits of code block stream 5 into the payload region of code block stream 411. Alternatively, it can be said that the bits in the fourth code block stream are encapsulated into an fgBU frame (basic frame 0).
[0421] Please continue reading. Figure 9b A basic frame (also known as an fgBU frame) carries data corresponding to 24 sub-slots.
[0422] An fgBU frame format can contain the following four parts:
[0423] fgBU preamble: fgBU boundary positioning, compatible with Ethernet preamble, compatible with X-Ethernet / MTN large granular pipe and Ethernet rate adaptation.
[0424] fgBU overhead (OH): Used to carry overhead information.
[0425] fgBU payload: Carries service data and may include bits in the D blocks after the first S block of the fgBU frame, excluding the 56 bits of OH information, the payload area in the remaining D blocks, and bits on the T blocks that can be used to carry service data (such as bits outside the synchronization header area in the T7 block).
[0426] fgBU encapsulation tail (T7): Compatible with Ethernet standard T7 code block (code block type 0xFF). It is recommended to add an idle code block after the encapsulation tail.
[0427] Using the Taiying dedicated line small-granularity fgBU as a fixed length, there are 197 64B / 66B code blocks (1567 bytes before encoding), including: 7 bytes of fgBU overhead, 1560 bytes of payload; plus 8 bytes of preamble, 1 byte of EFD and 8 bytes of IPG (at typical rates, each encoded fgBU is followed by an idle code block).
[0428] Another method for generating code block stream 411 is to carry indication information in a region of code block stream 411. This indication information is used to indicate the information carried in the synchronization header region of the code blocks from code block stream 5 carried in the multiframe. This indication information can be obtained by extracting and processing the compressed 1-bit synchronization header regions of each code block and placing them uniformly in a preset region, such as after the OH information. Then, only the 64 bits of each code block in code block stream 5, excluding the synchronization header region, are sequentially placed into the payload region of code block stream 411. The second communication device can then recover the synchronization header region of the code blocks in code block stream 5 based on this indication information.
[0429] It is understood that, in order to achieve the functions in the above embodiments, the communication device includes hardware structures and / or software modules corresponding to each function. Those skilled in the art should readily recognize that, based on the units and method steps described in conjunction with the embodiments disclosed in this application, this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed by hardware or by computer software driving hardware depends on the specific application scenario and design constraints of the technical solution.
[0430] Figure 10 , Figure 11 and Figure 12This is a schematic diagram of the possible communication devices provided for embodiments of this application. These communication devices can be used to implement the function of the first communication device in the above method embodiments, and therefore can also achieve the beneficial effects of the above method embodiments. These communication devices can also be used to implement the function of the second communication device in the above method embodiments, and therefore can also achieve the beneficial effects of the above method embodiments. In the embodiments of this application, the communication device can be as follows: Figure 1a and Figure 2a The transmitting end device or the first communication device in the application can also be a module (such as a chip) applied to the transmitting end device or the first communication device. In the embodiments of this application, the communication device can be as follows: Figure 1a and Figure 2a The receiving device or the second communication device in the middle can also be a module (such as a chip) applied to the receiving device or the second communication device.
[0431] like Figure 10 As shown, the communication device 1300 includes a processing unit 1310 and a transceiver unit 1320. The communication device 1300 is used to implement the above-mentioned... Figure 3 The function of the first communication device in the method embodiment shown.
[0432] When the communication device 1300 is used to implement Figure 3 In the method embodiment shown, the first communication device functions as follows: Processing unit 1310, through transceiver unit 1320, performs the following actions: receiving a first service data stream; generating a first code block stream based on the first service data stream, the first code block stream including first clock frequency information; the first clock frequency information indicates: the transmission duration of k first data frames of the first service data stream, and / or the time when the k first data frames of the first service data stream are received; and transmitting the first code block stream.
[0433] When the communication device 1300 is used to implement Figure 3 In the method embodiment shown, the function of the first communication device is as follows: the processing unit 1310 is further configured to perform the following via the transceiver unit 1320: receiving Q0 second service data streams, where Q0 is a positive integer; generating a first code block stream based on the first service data stream and the Q0 second service data streams. The first clock frequency information is further configured to indicate the transmission duration of k third data frames in each of the Q0 second service data streams and / or the time at which the first communication device receives the k third data frames.
[0434] When the communication device 1300 is used to implement Figure 3In the method embodiment shown, the function of the first communication device is as follows: the processing unit 1310 is further configured to perform the following through the transceiver unit 1320: according to the preset order between the first service data stream and Q0 second service data streams, multiplexing the bit blocks in the first service data stream and Q0 second service data streams in units of consecutive bit blocks of n0 bits to obtain a third service data stream; n0 is a positive integer; and generating a first code block stream based on the third service data stream.
[0435] When the communication device 1300 is used to implement Figure 3 In the method embodiment shown, the function of the first communication device is as follows: the processing unit 1310 is further configured to perform the following through the transceiver unit 1320: process Q0 second service data streams to generate Q0 third code block streams; process the first service data stream to generate a second code block stream; the second code block stream includes first clock frequency information; the second code block stream includes first clock frequency information and k first data frames; and multiplex the data in the Q0 third code block streams and the second code block stream to obtain a first code block stream.
[0436] When the communication device 1300 is used to implement Figure 3 In the method embodiment shown, the function of the first communication device is as follows: the processing unit 1310 is also used to perform the following through the transceiver unit 1320: according to the preset sorting between Q0 third code block streams and the second code block stream, using N1 data units as units, multiplexing the data units in Q0 third code block streams and the second code block stream to obtain the first code block stream, where N1 is a positive integer.
[0437] When the communication device 1300 is used to implement Figure 3 In the method embodiment shown, the function of the first communication device is as follows: the processing unit 1310 is further configured to perform the following through the transceiver unit 1320: acquire Q1 fourth code block streams, where Q1 is a positive integer; perform time-division multiplexing on the code blocks in the Q1 fourth code block streams and the first code block streams according to the correspondence between the Q1 fourth code block streams and the first code block streams and S1 first time slots respectively, to obtain a fifth code block stream; one code block stream in the Q1 fourth code block streams and the first code block streams corresponds to at least one first time slot in the S1 first time slots; S1 is an integer not less than (Q1+1); and send the fifth code block stream.
[0438] When the communication device 1300 is used to implement Figure 3In the method embodiment shown, the function of the first communication device is as follows: the processing unit 1310 is further configured to perform the following through the transceiver unit 1320: acquire Q2 sixth code block streams, where Q2 is a positive integer; perform time-division multiplexing on the code blocks in the Q2 sixth code block streams and the fifth code block stream according to the correspondence between the Q2 sixth code block streams and the fifth code block stream and the S2 second time slots respectively, to obtain a seventh code block stream; wherein, one code block stream in the Q2 sixth code block streams and the fifth code block stream corresponds to at least one second time slot in the S2 second time slots; S2 is an integer not less than (Q2+1); the second time slot corresponding to the fifth code block stream is divided into S1 first time slots; and send the seventh code block stream.
[0439] like Figure 10 As shown, the communication device 1300 includes a processing unit 1310 and a transceiver unit 1320. The communication device 1300 is used to implement the above-mentioned... Figure 3 The function of the second communication device in the method embodiment shown.
[0440] When the communication device 1300 is used to implement Figure 3 In the method embodiment shown, the function of the second communication device is as follows: the processing unit 1310 is used to perform the following through the transceiver unit 1320: acquiring a first code block stream; the first code block stream includes first clock frequency information; the first clock frequency information is used to indicate: the transmission duration of k first data frames of the first service data stream, and / or the time when the k first data frames of the first service data stream are received. Acquiring k first data frames and the first clock frequency information from the first code block stream; and sending the k first data frames according to the first clock frequency information.
[0441] When the communication device 1300 is used to implement Figure 3 In the method embodiment shown, the function of the second communication device is as follows: the processing unit 1310 is further configured to perform the following via the transceiver unit 1320: obtain second clock frequency information and k second data frames from the first code block stream; the second clock frequency information is used to indicate: the transmission duration of the k second data frames of the first service data stream, and / or the time when the first communication device receives the k second data frames of the first service data stream. Based on the second clock frequency information, the k second data frames are transmitted.
[0442] When the communication device 1300 is used to implement Figure 3 In the method embodiment shown, the function of the second communication device is as follows: the processing unit 1310 is further configured to perform the following through the transceiver unit 1320: obtain first clock frequency information from the first code block stream; demultiplex the first code block stream to obtain a first service data stream and Q0 second service data streams, where Q0 is a positive integer; wherein, the first clock frequency information is further configured to indicate the transmission duration of k third data frames of each of the Q0 second service data streams and / or the time when the first communication device receives the k third data frames.
[0443] When the communication device 1300 is used to implement Figure 3 In the method embodiment shown, the function of the second communication device is as follows: the processing unit 1310 is also used to perform the following through the transceiver unit 1320: demultiplexing the first code block stream in units of bit blocks consisting of n0 consecutive bits to obtain the first service data stream and Q0 second service data streams.
[0444] When the communication device 1300 is used to implement Figure 3 In the method embodiment shown, the function of the second communication device is as follows: the processing unit 1310 is further configured to perform the following through the transceiver unit 1320: demultiplexing the first code block stream to obtain Q0 third code block streams and second code block streams; the second code block stream includes first clock frequency information and k first data frames; obtaining the first service data stream and the first clock frequency information from the second code block stream; and obtaining Q0 second service data streams from the Q0 third code block streams.
[0445] When the communication device 1300 is used to implement Figure 3 In the method embodiment shown, the function of the second communication device is as follows: the processing unit 1310 is also used to perform the following through the transceiver unit 1320: demultiplexing the first code block stream with N1 data units as units to obtain Q0 third code block streams and second code block streams, where N1 is a positive integer.
[0446] When the communication device 1300 is used to implement Figure 3 In the method embodiment shown, the function of the second communication device is as follows: the processing unit 1310 is further configured to perform the following through the transceiver unit 1320: acquire the fifth code block stream; demultiplex the fifth code block stream according to the correspondence between Q1 fourth code block streams and the first code block stream and S1 first time slots respectively, to obtain Q1 fourth code block streams and the first code block stream; wherein, one of the Q1 fourth code block streams and the first code block stream corresponds to at least one first time slot in the S1 first time slots; S1 is an integer not less than (Q1+1).
[0447] When the communication device 1300 is used to implement Figure 3 In the method embodiment shown, the function of the second communication device is as follows: the processing unit 1310 is further configured to perform the following through the transceiver unit 1320: acquire the seventh code block stream; demultiplex the seventh code block stream according to the correspondence between S2 second time slots and Q2 sixth and fifth code block streams to obtain Q2 sixth and fifth code block streams; wherein, one of the Q2 sixth and fifth code block streams corresponds to at least one second time slot in the S2 second time slots; the second time slot corresponding to the fifth code block stream is divided into S1 first time slots; S2 is an integer not less than (Q2+1).
[0448] For more detailed descriptions of the above-mentioned solutions, as well as processing unit 1310 and transceiver unit 1320, please refer to [link / reference needed]. Figure 3 The relevant descriptions in the method embodiments shown are directly obtained and will not be repeated here.
[0449] like Figure 11 As shown, the communication device 1400 includes a processing circuit 1410 and an interface circuit 1420. The processing circuit 1410 and the interface circuit 1420 are coupled to each other. It is understood that the interface circuit 1420 can be a transceiver or an input / output interface. Optionally, the communication device 1400 may also include a memory for storing instructions executed by the processing circuit, or storing input data required for the processing circuit 1410 to execute instructions, or storing data generated after the processing circuit 1410 executes instructions.
[0450] When the communication device 1400 is used to implement Figure 3 In the method shown, the processing circuit 1410 is used to implement the function of the processing unit 1310, and the interface circuit 1420 is used to implement the function of the transceiver unit 1320.
[0451] like Figure 12 As shown, the communication device 1500 includes a processor 1510 and a communication interface 1520. The processor 1510 and the communication interface 1520 are coupled to each other. It is understood that the communication interface 1520 can be a transceiver or an input / output interface. Optionally, the communication device 1500 may also include a memory 1530 for storing instructions executed by the processor 1510, or storing input data required by the processor 1510 to execute instructions, or storing data generated after the processor 1510 executes instructions.
[0452] When the communication device 1500 is used to achieve Figure 3 In the method shown, the processor 1510 is used to implement the functions of the processing unit 1310, and the communication interface 1520 is used to implement the functions of the transceiver unit 1320.
[0453] When the communication device 1500 is used to achieve Figure 3 In the method embodiment shown, the first communication device functions as follows: The processor 1510 performs the following via the communication interface 1520: receiving a first service data stream; generating a first code block stream based on the first service data stream, the first code block stream including first clock frequency information; the first clock frequency information indicates: the transmission duration of k first data frames of the first service data stream, and / or the time when the k first data frames of the first service data stream are received; and transmitting the first code block stream.
[0454] When the communication device 1500 is used to achieve Figure 3In the illustrated method embodiment, the function of the second communication device is as follows: The processor 1510 is configured to perform the following via the communication interface 1520: Acquire a first code block stream; the first code block stream includes first clock frequency information; the first clock frequency information indicates: the transmission duration of k first data frames of the first service data stream, and / or the time when the k first data frames of the first service data stream are received. Acquire k first data frames and the first clock frequency information from the first code block stream. Send k first data frames according to the first clock frequency information.
[0455] When the aforementioned communication device is a chip applied to a communication device, the communication device chip implements the functions of the communication device in the above method embodiments. The communication device chip receives information from other modules (such as radio frequency modules or antennas) in the communication device, which is sent to the communication device by the network device; or, the communication device chip sends information to other modules (such as radio frequency modules or antennas) in the communication device, which is sent to the network device by the communication device.
[0456] It is understood that the processor in the embodiments of this application may be a Central Processing Unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. A general-purpose processor may be a microprocessor or any conventional processor.
[0457] According to the method provided in the embodiments of this application, this application also provides a computer program product, which includes: a computer program or instructions, which, when executed on a computer, cause the computer to perform... Figure 3 The method of any one of the embodiments shown.
[0458] According to the method provided in the embodiments of this application, this application also provides a computer-readable storage medium storing a program or instructions that, when executed on a computer, cause the computer to perform... Figure 3 The method of any one of the embodiments shown.
[0459] According to the method provided in the embodiments of this application, this application also provides a chip system, which may include a processor. The processor is coupled to a memory and can be used to execute... Figure 3The method of any one of the embodiments shown. Optionally, the chip system further includes a memory. The memory is used to store computer programs (also referred to as code or instructions). The processor is used to call and run the computer programs from the memory, causing the device on which the chip system is installed to perform... Figure 3 The method of any one of the embodiments shown.
[0460] According to the method provided in the embodiments of this application, this application also provides a system, which includes the aforementioned first communication device and second communication device.
[0461] The method steps in the embodiments of this application can be implemented in hardware or by a processor executing software instructions. The software instructions can consist of corresponding software modules, which can be stored in random access memory (RAM), flash memory, read-only memory (ROM), programmable read-only memory, erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory, registers, hard disks, solid-state drives (SSDs), portable hard disks, compact disc read-only memory (CD-ROMs), or any other form of storage medium known in the art. An exemplary storage medium is coupled to a processor, enabling the processor to read information from and write information to the storage medium. Of course, the storage medium can also be a component of the processor. The processor and storage medium can reside in an ASIC. Alternatively, the ASIC can reside in a communication device. Of course, the processor and storage medium can also exist as discrete components in the communication device.
[0462] In the above embodiments, implementation can be achieved, in whole or in part, through software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented, in whole or in part, as a computer program product. A computer program product includes one or more computer programs or instructions. When a computer program or instruction is loaded and executed on a computer, all or part of the processes or functions of the embodiments of this application are performed. The computer can be a general-purpose computer, a special-purpose computer, a computer network, a network device, a user equipment, or other programmable device. The computer program or instructions can be stored in a computer-readable storage medium or transferred from one computer-readable storage medium to another. For example, a computer program or instructions can be transferred from one website, computer, server, or data center to another website, computer, server, or data center via wired or wireless means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium, such as a floppy disk, hard disk, or magnetic tape; it can also be an optical medium, such as a digital video optical disc; or it can be a semiconductor medium, such as a solid-state drive. The computer-readable storage medium may be a volatile or non-volatile storage medium, or may include both types of storage media.
[0463] In the various embodiments of this application, unless otherwise specified or in case of logical conflict, the terminology and / or descriptions of different embodiments are consistent and can be referenced by each other. The technical features of different embodiments can be combined to form new embodiments according to their inherent logical relationship.
[0464] In this application, "multiple" refers to two or more. "And / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, or B alone, where A and B can be singular or plural. In the textual description of this application, the character " / " generally indicates an "or" relationship between the preceding and following related objects; in the formulas of this application, the character " / " indicates a "division" relationship between the preceding and following related objects. "Including at least one of A, B, or C" can mean: including A; including B; including C; including A and B; including A and C; including B and C; including A, B, and C.
[0465] It is understood that the various numerical designations used in the embodiments of this application are merely for descriptive convenience and are not intended to limit the scope of the embodiments of this application. The order of the process numbers described above does not imply the order of execution; the execution order of each process should be determined by its function and internal logic.
Claims
1. A communication method, characterized in that, The method is applicable to a first communication device, and the method includes: Receive the first service data stream; Based on the first service data stream, a first code block stream is generated, the first code block stream including first clock frequency information; the first clock frequency information is used to indicate: the transmission duration of k first data frames of the first service data stream, and / or the time when the k first data frames of the first service data stream are received; where k is a positive integer; The first code block stream is sent to the second communication device, and the first clock frequency information is used to enable the second communication device to send the k first data frames according to the first clock frequency information.
2. The method as described in claim 1, characterized in that, Before generating the first code block stream based on the first service data stream, the method further includes: Receive Q0 second service data streams, where Q0 is a positive integer; The step of generating the first code block stream based on the first service data stream includes: The first code block stream is generated based on the first service data stream and the Q0 second service data streams; The first clock frequency information is also used to indicate the transmission duration of k third data frames in each of the Q0 second service data streams, and / or the time when the k third data frames are received.
3. The method as described in claim 2, characterized in that, The communication device at the source end of the Q0 second service data stream is the same as that at the source end of the first service data stream, and the communication device at the destination end of the Q0 second service data stream is the same as that at the destination end of the first service data stream.
4. The method as described in claim 2 or 3, characterized in that, The step of generating the first code block stream based on the first service data stream and the Q0 second service data streams includes: Based on the preset sorting between the first service data stream and the Q0 second service data streams, the bit blocks in the first service data stream and the Q0 second service data streams are multiplexed in units of n0 consecutive bits to obtain a third service data stream; where n0 is a positive integer. The first code block stream is generated based on the third service data stream.
5. The method as described in claim 2 or 3, characterized in that, The step of generating the first code block stream based on the first service data stream and the Q0 second service data streams includes: The Q0 second service data streams are processed to generate Q0 third code block streams; The first service data stream is processed to generate a second code block stream; the second code block stream includes the first clock frequency information and the k first data frames. The data in the Q0 third code block stream and the second code block stream are multiplexed to obtain the first code block stream.
6. The method according to any one of claims 1-3, characterized in that, The first clock frequency information includes: The reception time of the frame header of the first data frame in the k first data frames.
7. The method according to any one of claims 1-3, characterized in that, The first clock frequency information includes: The reception time of the frame tail of the kth first data frame among the k first data frames.
8. The method according to any one of claims 1-3, characterized in that, The first clock frequency information includes: First count value; Wherein, the first count value is the number of cycles of the clock frequency of the local clock signal of the first communication device during the time it takes for the first communication device to receive the k first data frames.
9. The method according to any one of claims 1-3, characterized in that, The first clock frequency information includes: Second count value; Wherein, the second count value is the difference between the first count value and the pre-designed value; the first count value is the number of cycles of the clock frequency of the local clock signal of the first communication device during the time it takes to receive the k first data frames.
10. The method according to any one of claims 1-3, characterized in that, The first clock frequency information includes: Second count value and pre-designed value; Wherein, the second count value is the difference between the first count value and the pre-designed value; the first count value is the number of cycles of the clock frequency of the local clock signal of the first communication device during the time it takes to receive the k first data frames.
11. The method according to any one of claims 1-3, characterized in that, The first clock frequency information includes: The first duration is the transmission duration of the k first data frames.
12. The method according to any one of claims 1-3, characterized in that, The first clock frequency information includes: Third count value; Wherein, the third count value is the number of cycles of the clock frequency of the local clock signal of the first communication device within the second duration, and the second duration is the duration from the start of a preset time to the reception time of the frame header of the first first data frame among the k first data frames.
13. The method according to any one of claims 1-3, characterized in that, The first clock frequency information includes: Second duration; The second duration is the duration from the start of a preset time to the reception time of the header of the first first data frame among the k first data frames.
14. The method according to any one of claims 1-3, characterized in that, The first clock frequency information includes: Fourth count value; Wherein, the fourth count value is the number of cycles of the clock frequency of the local clock signal of the first communication device within the third duration, and the third duration is the duration from the start of a preset time to the reception time of the end of the kth first data frame among the k first data frames.
15. The method according to any one of claims 1-3, characterized in that, The first clock frequency information includes: Third duration; The third duration is the duration from the start of a preset time to the reception time of the end of the kth first data frame among the k first data frames.
16. The method according to any one of claims 1-3, characterized in that, The first code block stream further includes second clock frequency information; the second clock frequency information is used to indicate: the transmission duration of k second data frames of the first service data stream, and / or the time when the k second data frames of the first service data stream are received.
17. The method according to any one of claims 1-3, characterized in that, The first code block stream includes a first data unit group, which includes W1 first data units, where W1 is a positive integer; the first clock frequency information is carried in at least one of the following contents of at least one of the W1 first data units: A header block, at least one data block, a tail block, or an operation, maintenance, and management block.
18. The method as described in claim 17, characterized in that, The bits corresponding to the k first data frames are carried in one of the following contents of the first data unit in the W1 first data units: The payload area of the data block in the at least one data block; or, The payload area of the data block and the tail block in the at least one data block.
19. The method according to any one of claims 1-3, characterized in that, The first code block stream includes a first data unit group, which includes W1 first data units, where W1 is a positive integer; the first clock frequency information is carried in at least one of the following contents of at least one of the W1 first data units: Expenditure area, or net load area.
20. The method as described in claim 17, characterized in that, At least one of the W1 first data units carries first indication information, which indicates that the first data unit carrying the first indication information carries the first clock frequency information.
21. A communication method, characterized in that, The method is applicable to a second communication device, and the method includes: Obtain a first code block stream; the first code block stream includes first clock frequency information, the first code block stream is generated based on a first service data stream received by a first communication device; the first clock frequency information is used to indicate: the transmission duration of k first data frames of the first service data stream, and / or the time when k first data frames of the first service data stream are received; where k is a positive integer; Obtain the k first data frames and the first clock frequency information from the first code block stream; Based on the first clock frequency information, the k first data frames are sent.
22. The method as described in claim 21, characterized in that, The step of obtaining the k first data frames and the first clock frequency information from the first code block stream includes: Obtain the first clock frequency information from the first code block stream; The first code block stream is demultiplexed to obtain the k first data frames of the first service data stream and Q0 second service data streams, where Q0 is a positive integer; The first clock frequency information is also used to indicate the transmission duration of k third data frames in each of the Q0 second service data streams, and / or the time when the k third data frames are received.
23. The method as described in claim 22, characterized in that, The communication device at the source end of the Q0 second service data stream is the same as that at the source end of the first service data stream, and the communication device at the destination end of the Q0 second service data stream is the same as that at the destination end of the first service data stream.
24. The method as described in claim 22 or 23, characterized in that, The step of demultiplexing the first code block stream to obtain the first service data stream and Q0 second service data streams includes: The first code block stream is demultiplexed in units of n0 consecutive bits to obtain the first service data stream and the Q0 second service data streams.
25. The method as described in claim 22 or 23, characterized in that, The step of obtaining the first clock frequency information from the first code block stream, demultiplexing the first code block stream to obtain the first service data stream and Q0 second service data streams includes: The first code block stream is demultiplexed to obtain Q0 third code block streams and second code block streams; the second code block stream includes the first clock frequency information and the k first data frames. The first service data stream and the first clock frequency information are obtained from the second code block stream; The Q0 second service data stream is obtained from the Q0 third code block stream.
26. The method according to any one of claims 21-23, characterized in that, The first clock frequency information includes: The reception time of the frame header of the first data frame in the k first data frames.
27. The method according to any one of claims 21-23, characterized in that, The first clock frequency information includes: The reception time of the end of the kth first data frame among the k first data frames.
28. The method according to any one of claims 21-23, characterized in that, The first clock frequency information includes: First count value; Wherein, the first count value is the number of cycles of the clock frequency of the local clock signal of the first communication device during the time period of receiving the k first data frames.
29. The method according to any one of claims 21-23, characterized in that, The first clock frequency information includes: Second count value; Wherein, the second count value is the difference between the first count value and the pre-designed value; the first count value is the number of cycles of the clock frequency of the local clock signal of the first communication device during the time it takes to receive the k first data frames.
30. The method according to any one of claims 21-23, characterized in that, The first clock frequency information includes: Second count value and pre-designed value; Wherein, the second count value is the difference between the first count value and the pre-designed value; the first count value is the number of cycles of the clock frequency of the local clock signal of the first communication device during the time it takes to receive the k first data frames.
31. The method according to any one of claims 21-23, characterized in that, The first clock frequency information includes: The first duration is the transmission duration of the k first data frames.
32. The method according to any one of claims 21-23, characterized in that, The first clock frequency information includes: Third count value; Wherein, the third count value is the number of cycles of the clock frequency of the local clock signal of the first communication device within the second duration, and the second duration is the duration from the start of a preset time to the reception time of the frame header of the first first data frame among the k first data frames.
33. The method according to any one of claims 21-23, characterized in that, The first clock frequency information includes: Second duration; The second duration is the duration from the start of a preset time to the reception time of the header of the first first data frame among the k first data frames.
34. The method according to any one of claims 21-23, characterized in that, The first clock frequency information includes: Fourth count value; Wherein, the fourth count value is the number of cycles of the clock frequency of the local clock signal of the first communication device within the third duration, and the third duration is the duration from the start of a preset time to the reception time of the end of the kth first data frame among the k first data frames.
35. The method according to any one of claims 21-23, characterized in that, The first clock frequency information includes: Third duration; The third duration is the duration from the start of a preset time to the reception time of the end of the kth first data frame among the k first data frames.
36. The method according to any one of claims 21-23, characterized in that, The first code block stream further includes second clock frequency information; the second clock frequency information is used to indicate: the transmission duration of k second data frames of the first service data stream, and / or the time when the k second data frames of the first service data stream are received.
37. The method according to any one of claims 21-23, characterized in that, The first code block stream includes a first data unit group, which includes W1 first data units, where W1 is a positive integer; the first clock frequency information is carried in at least one of the following contents of at least one of the W1 first data units: A header block, at least one data block, a tail block, or an operation, maintenance, and management block.
38. The method as described in claim 37, characterized in that, The bits corresponding to the k first data frames are carried in one of the following contents of the first data unit in the W1 first data units: The payload area of the data block in the at least one data block; or, The payload area of the data block and the tail block in the at least one data block.
39. The method according to any one of claims 21-23, characterized in that, The first code block stream includes a first data unit group, which includes W1 first data units, where W1 is a positive integer; the first clock frequency information is carried in at least one of the following contents of at least one of the W1 first data units: Expenditure area, or net load area.
40. The method as described in claim 37, characterized in that, At least one of the W1 first data units carries first indication information, which indicates that the first data unit carrying the first indication information carries the first clock frequency information.
41. A communication device, characterized in that, It includes a processing unit and a transceiver unit, wherein the processing unit, through the transceiver unit, is used for: Receive the first service data stream; Based on the first service data stream, a first code block stream is generated, the first code block stream including first clock frequency information; the first clock frequency information is used to indicate: the transmission duration of k first data frames of the first service data stream, and / or the time when the k first data frames of the first service data stream are received; where k is a positive integer; The first code block stream is sent to the second communication device, and the first clock frequency information is used to enable the second communication device to send the k first data frames according to the first clock frequency information.
42. The apparatus as claimed in claim 41, characterized in that, The processing unit, through the transceiver unit, is further used for: Receive Q0 second service data streams, where Q0 is a positive integer; The step of generating the first code block stream based on the first service data stream includes: The first code block stream is generated based on the first service data stream and the Q0 second service data streams; The first clock frequency information is also used to indicate the transmission duration of k third data frames in each of the Q0 second service data streams, and / or the time when the k third data frames are received.
43. The apparatus as claimed in claim 42, characterized in that, The communication device at the source end of the Q0 second service data stream is the same as that at the source end of the first service data stream, and the communication device at the destination end of the Q0 second service data stream is the same as that at the destination end of the first service data stream.
44. The apparatus as claimed in claim 42 or 43, characterized in that, The processing unit, through the transceiver unit, is used for: Based on the preset sorting between the first service data stream and the Q0 second service data streams, the bit blocks in the first service data stream and the Q0 second service data streams are multiplexed in units of n0 consecutive bits to obtain a third service data stream; where n0 is a positive integer. The first code block stream is generated based on the third service data stream.
45. The apparatus as claimed in claim 42 or 43, characterized in that, The processing unit, through the transceiver unit, is used for: The Q0 second service data streams are processed to generate Q0 third code block streams; The first service data stream is processed to generate a second code block stream; the second code block stream includes the first clock frequency information. The second code block stream includes the first clock frequency information and the k first data frames; The data in the Q0 third code block stream and the second code block stream are multiplexed to obtain the first code block stream.
46. The apparatus according to any one of claims 41-43, characterized in that, The first clock frequency information includes: The reception time of the frame header of the first data frame in the k first data frames.
47. The apparatus according to any one of claims 41-43, characterized in that, The first clock frequency information includes: The reception time of the end of the kth first data frame among the k first data frames.
48. The apparatus according to any one of claims 41-43, characterized in that, The first clock frequency information includes: First count value; Wherein, the first count value is the number of cycles of the clock frequency of the local clock signal of the first communication device during the time it takes for the first communication device to receive the k first data frames.
49. The apparatus according to any one of claims 41-43, characterized in that, The first clock frequency information includes: Second count value; Wherein, the second count value is the difference between the first count value and the pre-designed value; the first count value is the number of cycles of the clock frequency of the local clock signal of the first communication device during the time the first communication device receives the k first data frames.
50. The apparatus according to any one of claims 41-43, characterized in that, The first clock frequency information includes: Second count value and pre-designed value; Wherein, the second count value is the difference between the first count value and the pre-designed value; the first count value is the number of cycles of the clock frequency of the local clock signal of the first communication device during the time the first communication device receives the k first data frames.
51. The apparatus according to any one of claims 41-43, characterized in that, The first clock frequency information includes: The first duration is the transmission duration of the k first data frames.
52. The apparatus according to any one of claims 41-43, characterized in that, The first clock frequency information includes: Third count value; Wherein, the third count value is the number of cycles of the clock frequency of the local clock signal of the first communication device within the second duration, and the second duration is the duration from the start of a preset time to the reception time of the frame header of the first first data frame among the k first data frames.
53. The apparatus according to any one of claims 41-43, characterized in that, The first clock frequency information includes: Second duration; The second duration is the duration from the start of a preset time to the reception time of the header of the first first data frame among the k first data frames.
54. The apparatus according to any one of claims 41-43, characterized in that, The first clock frequency information includes: Fourth count value; Wherein, the fourth count value is the number of cycles of the clock frequency of the local clock signal of the first communication device within the third duration, and the third duration is the duration from the start of a preset time to the reception time of the end of the kth first data frame among the k first data frames.
55. The apparatus according to any one of claims 41-43, characterized in that, The first clock frequency information includes: Third duration; The third duration is the duration from the start of a preset time to the reception time of the end of the kth first data frame among the k first data frames.
56. The apparatus according to any one of claims 41-43, characterized in that, The first code block stream further includes second clock frequency information; the second clock frequency information is used to indicate: the transmission duration of k second data frames of the first service data stream, and / or the time when the k second data frames of the first service data stream are received.
57. The apparatus according to any one of claims 41-43, characterized in that, The first code block stream includes a first data unit group, which includes W1 first data units, where W1 is a positive integer; the first clock frequency information is carried in at least one of the following contents of at least one of the W1 first data units: A header block, at least one data block, a tail block, or an operation, maintenance, and management block.
58. The apparatus as claimed in claim 57, characterized in that, The bits corresponding to the k first data frames are carried in one of the following contents of the first data unit in the W1 first data units: The payload area of the data block in the at least one data block; or, The payload area of the data block and the tail block in the at least one data block.
59. The apparatus according to any one of claims 41-43, characterized in that, The first code block stream includes a first data unit group, which includes W1 first data units, where W1 is a positive integer; the first clock frequency information is carried in at least one of the following contents of at least one of the W1 first data units: Expenditure area, or net load area.
60. The apparatus as claimed in claim 57, characterized in that, At least one of the W1 first data units carries first indication information, which indicates that the first data unit carrying the first indication information carries the first clock frequency information.
61. A communication device, characterized in that, It includes a processing unit and a transceiver unit, wherein the processing unit, through the transceiver unit, is used for: Acquire a first code block stream; the first code block stream includes first clock frequency information, and the first code block stream is generated based on the first service data stream received by the first communication device; The first clock frequency information is used to indicate: the transmission duration of k first data frames of the first service data stream, and / or the time when the k first data frames of the first service data stream are received; where k is a positive integer; Obtain the k first data frames and the first clock frequency information from the first code block stream; Based on the first clock frequency information, the k first data frames are sent.
62. The apparatus as claimed in claim 61, characterized in that, The processing unit, through the transceiver unit, is used for: Obtain the first clock frequency information from the first code block stream; The first code block stream is demultiplexed to obtain the first service data stream and Q0 second service data streams, where Q0 is a positive integer. The first clock frequency information is also used to indicate the transmission duration of k third data frames in each of the Q0 second service data streams, and / or the time when the k third data frames are received.
63. The apparatus as claimed in claim 62, characterized in that, The communication device at the source end of the Q0 second service data stream is the same as that at the source end of the first service data stream, and the communication device at the destination end of the Q0 second service data stream is the same as that at the destination end of the first service data stream.
64. The apparatus as claimed in claim 62 or 63, characterized in that, The step of demultiplexing the first code block stream to obtain the first service data stream and Q0 second service data streams includes: The first code block stream is demultiplexed in units of n0 consecutive bits to obtain the first service data stream and the Q0 second service data streams.
65. The apparatus as claimed in claim 62 or 63, characterized in that, The processing unit, through the transceiver unit, is used for: The first code block stream is demultiplexed to obtain Q0 third code block streams and second code block streams; the second code block stream includes the first clock frequency information and the k first data frames. The first service data stream and the first clock frequency information are obtained from the second code block stream; The Q0 second service data stream is obtained from the Q0 third code block stream.
66. The apparatus according to any one of claims 61-63, characterized in that, The first clock frequency information includes: The reception time of the frame header of the first data frame in the k first data frames.
67. The apparatus according to any one of claims 61-63, characterized in that, The first clock frequency information includes: The reception time of the end of the kth first data frame among the k first data frames.
68. The apparatus according to any one of claims 61-63, characterized in that, The first clock frequency information includes: First count value; Wherein, the first count value is the number of cycles of the clock frequency of the local clock signal of the first communication device during the time it takes for the first communication device to receive the k first data frames.
69. The apparatus according to any one of claims 61-63, characterized in that, The first clock frequency information includes: Second count value; Wherein, the second count value is the difference between the first count value and the pre-designed value; the first count value is the number of cycles of the clock frequency of the local clock signal of the first communication device during the time the first communication device receives the k first data frames.
70. The apparatus according to any one of claims 61-63, characterized in that, The first clock frequency information includes: Second count value and pre-designed value; Wherein, the second count value is the difference between the first count value and the pre-designed value; the first count value is the number of cycles of the clock frequency of the local clock signal of the first communication device during the time the first communication device receives the k first data frames.
71. The apparatus according to any one of claims 61-63, characterized in that, The first clock frequency information includes: The first duration is the transmission duration of the k first data frames.
72. The apparatus according to any one of claims 61-63, characterized in that, The first clock frequency information includes: Third count value; Wherein, the third count value is the number of cycles of the clock frequency of the local clock signal of the first communication device within the second duration, and the second duration is the duration from the start of a preset time to the reception time of the frame header of the first first data frame among the k first data frames.
73. The apparatus according to any one of claims 61-63, characterized in that, The first clock frequency information includes: Second duration; The second duration is the duration from the start of a preset time to the reception time of the header of the first first data frame among the k first data frames.
74. The apparatus according to any one of claims 61-63, characterized in that, The first clock frequency information includes: Fourth count value; Wherein, the fourth count value is the number of cycles of the clock frequency of the local clock signal of the first communication device within the third duration, and the third duration is the duration from the start of a preset time to the reception time of the end of the kth first data frame among the k first data frames.
75. The apparatus according to any one of claims 61-63, characterized in that, The first clock frequency information includes: Third duration; The third duration is the duration from the start of a preset time to the reception time of the end of the kth first data frame among the k first data frames.
76. The apparatus according to any one of claims 61-63, characterized in that, The first code block stream further includes second clock frequency information; the second clock frequency information is used to indicate: the transmission duration of k second data frames of the first service data stream, and / or the time when the k second data frames of the first service data stream are received.
77. The apparatus according to any one of claims 61-63, characterized in that, The first code block stream includes a first data unit group, which includes W1 first data units, where W1 is a positive integer; the first clock frequency information is carried in at least one of the following contents of at least one of the W1 first data units: A header block, at least one data block, a tail block, or an operation, maintenance, and management block.
78. The apparatus as claimed in claim 77, characterized in that, The bits corresponding to the k first data frames are carried in one of the following contents of the first data unit in the W1 first data units: The payload area of the data block in the at least one data block; or, The payload area of the data block and the tail block in the at least one data block.
79. The apparatus according to any one of claims 61-63, characterized in that, The first code block stream includes a first data unit group, which includes W1 first data units, where W1 is a positive integer; the first clock frequency information is carried in at least one of the following contents of at least one of the W1 first data units: Expenditure area, or net load area.
80. The apparatus as claimed in claim 77, characterized in that, At least one of the W1 first data units carries first indication information, which indicates that the first data unit carrying the first indication information carries the first clock frequency information.
81. A communication device, characterized in that, The device includes a processor coupled to a memory. The memory is used to store computer programs or instructions; The processor is configured to execute a computer program or instructions in a memory, causing the communication device to perform the method of any one of claims 1-40.
82. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer-executable instructions that, when invoked by a computer, cause the method described in any one of claims 1-40 to be executed.
83. A computer program product, characterized in that, The computer program product stores a computer program, the computer program including program instructions, which, when executed by a computer, cause the computer to perform the method as described in any one of claims 1 to 40.