CN117938738A - Communication method and device - Google Patents
Communication method and device Download PDFInfo
- Publication number
- CN117938738A CN117938738A CN202211316947.4A CN202211316947A CN117938738A CN 117938738 A CN117938738 A CN 117938738A CN 202211316947 A CN202211316947 A CN 202211316947A CN 117938738 A CN117938738 A CN 117938738A
- Authority
- CN
- China
- Prior art keywords
- flexe
- code block
- block stream
- communication device
- sequence number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004891 communication Methods 0.000 title claims abstract description 349
- 238000000034 method Methods 0.000 title claims abstract description 123
- 230000005540 biological transmission Effects 0.000 claims abstract description 26
- 239000000872 buffer Substances 0.000 claims description 91
- 239000002245 particle Substances 0.000 claims description 74
- 238000012545 processing Methods 0.000 claims description 57
- 230000015654 memory Effects 0.000 claims description 28
- 238000012795 verification Methods 0.000 claims description 18
- 230000000694 effects Effects 0.000 abstract description 12
- 238000002955 isolation Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 22
- 238000005516 engineering process Methods 0.000 description 16
- 230000006399 behavior Effects 0.000 description 13
- 238000004590 computer program Methods 0.000 description 8
- 239000000284 extract Substances 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 7
- 230000007480 spreading Effects 0.000 description 7
- 230000003139 buffering effect Effects 0.000 description 6
- 239000008187 granular material Substances 0.000 description 5
- 230000006978 adaptation Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
- H04L45/243—Multipath using M+N parallel active paths
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
The embodiment of the application discloses a communication method, wherein a first communication device sends a first FlexE code block stream to a second communication device through a first FlexE channel, and sends a first FlexE code block stream to the second communication device through a second FlexE channel. The first FlexE code block stream includes a first sequence number that identifies the order of transmission of the first FlexE code block stream. Because the second communication device can receive the first FlexE code block stream from two FlexE channels, and the possibility that two FlexE channels fail when transmitting the first FlexE code block stream is low, the second communication device can receive the first FlexE code block stream sent by the first communication device from at least one FlexE channel which does not fail, and because the FlexE channel can realize service hard isolation, the scheme can achieve the communication effect of almost zero packet loss while realizing service hard isolation.
Description
Technical Field
The present application relates to the field of communications, and in particular, to a communication method and apparatus.
Background
The flexible Ethernet (Flexible Ethernet, flexE) technology has the advantage of flexible bandwidth allocation according to needs, and can meet network scene requirements of mobile bearing, home broadband, private line access and the like. Therefore, flexE technology is becoming increasingly popular.
When the FlexE technology is adopted to communicate between network devices, how to improve the communication quality of the FlexE technology, and reduce the packet loss rate as much as possible, so as to provide higher service quality (quality of service, qoS) for the service is a problem yet to be solved.
Disclosure of Invention
The embodiment of the application provides a communication method and a communication device, which can achieve the communication effect of almost zero packet loss under the scene of adopting technology to communicate between network devices, thereby providing higher service quality for services.
In a first aspect, an embodiment of the present application provides a communication method, where the method may be applied to a first communication device, and a communication may be performed between the first communication device and a second communication device using FlexE technologies. In one example, at least two FlexE channels may be included between the first communication device and the second communication device. The at least two FlexE channels may include a first FlexE channel and a second FlexE channel. The first communication device may send a first FlexE code block stream to the second communication device over a first FlexE channel and send the first FlexE code block stream to the second communication device over the second FlexE channel. The first FlexE code block stream includes a first sequence number that identifies a transmission order of the first FlexE code block stream. Since the second communication device may receive the first FlexE code block stream from two FlexE channels, and the two FlexE channels may have a low probability of failure when transmitting the first FlexE code block stream, the second communication device may receive the first FlexE code block stream sent by the first communication device from at least one of the FlexE channels that is not failed. For example, upon failure of the first FlexE lane, a second communications device may receive the first FlexE code block stream from a second FlexE lane; the second communication device may receive the first FlexE code block stream from the first FlexE channel upon failure of the second FlexE channel. Therefore, the communication effect of almost zero packet loss is achieved, and the service quality provided for the service is improved. Because FlexE channels can realize service hard isolation, by adopting the scheme, the communication effect of almost zero packet loss can be achieved while the service hard isolation is realized.
In one possible implementation, the first communication device may obtain (e.g., generate) the first FlexE code block stream and send the FlexE code block stream to a second communication device over a first FlexE channel and a second FlexE channel, respectively. In one example, after the first communication device obtains the first FlexE code block streams, the first FlexE code block streams may be duplicated to obtain multiple first FlexE code block streams. For example, the first FlexE code block stream may be duplicated to obtain two first FlexE code block streams, where one first FlexE code block stream is sent to the second communication device through the first FlexE channel, and the other first FlexE code block stream is sent to the second communication device through the second FlexE channel. In one example, the first FlexE code block stream is replicated, and a mirror image of the first FlexE code block stream may be obtained.
In one possible implementation, the first FlexE channels and the second FlexE channels are both FlexE small particle channels. For this case, with the present solution, it is possible to provide a service quality with almost zero packet loss for small particle traffic transmitted between the first communication device and the second communication device.
In one possible implementation, the first FlexE channels and the second FlexE channels are both FlexE large particle channels. For this case, with the present solution, it is possible to provide a service quality with almost zero packet loss for large-particle traffic transmitted between the first communication device and the second communication device.
In one possible implementation, the first FlexE code block stream may be a code block stream obtained after encoding a traffic stream. As an example, the traffic stream may be first encapsulated with a container, resulting in a container, and then the container is encoded, resulting in the first FlexE code block stream.
In one possible implementation, when the first FlexE channels and the second FlexE channels are large particle channels, the FlexE OH and FlexE payloads may be obtained after encoding the containers. For this case, the first FlexE code block stream may include FlexE Overhead (OH) and FlexE payloads, for which case the container may be carried over the FlexE payloads.
In one possible implementation, when the first FlexE channels and the second FlexE channels are small particle channels, after encoding the container, small particle base units (fine granularity basic unit, fgBU) may be obtained, fgBU may include fgBU OH and fgBU payloads. For this case, the first FlexE code block stream may include fgBUOH and fgBU payloads, and the container may be carried over the fgBU payload.
In one possible implementation manner, the container overhead may include verification information, where the verification information is used to verify the container overhead, so as to ensure validity of the container overhead, and correspondingly, ensure accuracy of the first serial number carried in the container overhead. As one example, the container overhead may include a check word field for carrying check information.
In one possible implementation, the first FlexE code block stream may include an O code block, the O code block including the first sequence number. As an example, a new O-code block may be defined and utilized to carry the first sequence number.
In one possible implementation manner, when the O-code block is utilized to carry the first sequence number, the first FlexE code block stream may further include first indication information, where the first indication information is used to indicate that the O-code block is used to carry the first sequence number.
In one possible implementation, a certain Idle code block in the first FlexE code block stream may be replaced with the first indication information.
In one possible implementation, to avoid excessive expansion of the first FlexE code block stream, the first indication information may be carried by a type field of the O code block.
In one possible implementation, the first FlexE code block stream may include an SDT code block sequence consisting of a start (S) code block, at least one data (D) code block, and an end (T) code block, the SDT code block sequence including the first sequence number. As an example, a sequence of SDT code blocks may be newly defined and utilized to carry the first sequence number.
In a possible implementation manner, when the SDT code block sequence is used to carry the first sequence number, the first FlexE code block stream may further include second indication information, where the second indication information is used to indicate that the SDT code block sequence carries the first sequence number.
In one possible implementation, a certain Idle code block in the first FlexE code block stream may be replaced with the second indication information.
In one possible implementation, to avoid excessive spreading of the first FlexE code block stream, the second indication information may be carried by a T code block of the SDT code block sequence.
In a possible implementation manner, the T code block in the SDT code block carrying the first sequence number may include a control block, where the control block is configured to carry the second indication information. In this way, the SDT code block carries both the first sequence number and the second indication information.
In a possible implementation manner, a field may be defined in the control block to carry the second indication information, and an embodiment of the present application is not specifically limited to a field in the control block for carrying the second indication information, and as an example, the field may be a Magic number (Magic number) field.
In one possible implementation, the first FlexE code block stream may include a preamble, which is used to carry the first sequence number. Wherein: the preamble is a part of an S code block in the SDT code block sequence. As an example, a new preamble may be newly defined and used to carry the first sequence number.
In a possible implementation manner, when the preamble is used to carry the first sequence number, third indication information may be further included in the first FlexE code block stream, where the third indication information is used to indicate that the first sequence number is carried in the SDT code block sequence. In one example, a certain Idle code block in the first FlexE code block stream may be replaced with the third indication information. In yet another example, to avoid excessive spreading of the first FlexE code block stream, the third indication information may also be carried by the S code block to which the preamble belongs. For example, the first sequence number may be carried with a part of a field of a preamble included in the S-code block, and the third indication information may be carried with another part of a field of a preamble included in the S-code block.
In one possible implementation, when the first FlexE code block stream is used to carry small-particle traffic, the first FlexE code block stream includes fgBU OH and fgBU payloads. For this case, in one example, the fgBU OH may include the first sequence number. In the scenario where the first serial number is carried through fgBU OH, the fgBU OH may further include an fg-client identifier. The fg-client identifier may be an identifier of the fg-client to which the first FlexE code block stream belongs. The fg-client identifier may enable the receiving end to buffer, based on the fg-client, code block streams received from the plurality FlexE of channels and corresponding to the fg-client identifier.
In a possible implementation manner, when the fgBU OH is used to carry the first sequence number, a fourth indication information may be further included in the first FlexE code block stream, where the fourth indication information is used to indicate that the first sequence number is carried in the fgBU OH. In one example, the fourth indication information may be carried by an identification (flags) field in the fgBU OH.
In one possible implementation, the traffic carried by the first FlexE code block stream may be fixed bit rate (constant bit rate, CBR) traffic. For this case, with the present solution, it is possible to provide a service quality of almost zero packet loss for CBR traffic transmitted between the first communication device and the second communication device.
In one possible implementation, the traffic carried by the first FlexE code block stream may be variable bit rate (variable bit rate, VBR) traffic. In one example, VBR traffic may also be referred to as ethernet-CBR traffic. In some scenarios, VBR traffic can also be understood directly as ethernet traffic. For this case, with the present solution, it is possible to provide a quality of service with almost zero packet loss for VBR traffic transmitted between the first communication apparatus and the second communication apparatus.
In a possible implementation manner, when the service carried by the first FlexE code block flow is VBR service, the first FlexE code block flow further includes a slice type identifier and slice length information, where the slice type identifier is used to identify a slice type corresponding to the first FlexE code block flow, and the slice type includes: a head slice, a middle slice, or a tail slice, the slice length information identifying a valid data length carrying a payload portion of the first FlexE code block stream.
In one possible implementation manner, the first FlexE code block stream belongs to the first client, and the first communication device may add a sequence number to the code block stream corresponding to the first client according to a certain period, for example, add a sequence number to the code block stream corresponding to the first client according to a period of 20 ms. For this case, the first communication apparatus may further acquire a second FlexE code block stream after transmitting the first FlexE code block stream to the second communication apparatus through the first FlexE channel and transmitting the first FlexE code block stream to the second communication apparatus through the second FlexE channel, the second FlexE code block stream includes a second sequence number, the second sequence number identifies a transmission order of the second FlexE code block stream, the first sequence number and the second sequence number are numbered according to a preset rule order, the code blocks included in the first FlexE code block stream and the code blocks included in the second FlexE code block stream belong to the same client, and further transmit the second FlexE code block stream to the second communication apparatus through the first FlexE channel and transmit the second FlexE code block stream to the second communication apparatus through the second FlexE channel. Similarly, the second communication device can at least receive the second FlexE code block stream sent by the first communication device from a certain non-failure FlexE channel, so as to achieve the communication effect of almost zero packet loss and improve the service quality provided for the service.
In a second aspect, an embodiment of the present application provides a communication method, which may be applied to a second communication device, where the second communication device may receive, through a first FlexE channel between a first communication device and the second communication device, a first FlexE code block stream sent by the first communication device, and receive, through a second FlexE channel between the first communication device and the second communication device, the first FlexE code block stream sent by the first communication device. The first FlexE code block stream includes a first sequence number that identifies a transmission order of the first FlexE code block stream. Since the second communication device may receive the first FlexE code block stream from two FlexE channels, and the two FlexE channels may have a low probability of failure when transmitting the first FlexE code block stream, the second communication device may receive the first FlexE code block stream sent by the first communication device from at least one of the FlexE channels that is not failed. For example, upon failure of the first FlexE lane, a second communications device may receive the first FlexE code block stream from a second FlexE lane; the second communication device may receive the first FlexE code block stream from the first FlexE channel upon failure of the second FlexE channel. Therefore, the communication effect of almost zero packet loss is achieved, and the service quality provided for the service is improved. Because FlexE channels can realize service hard isolation, by adopting the scheme, the communication effect of almost zero packet loss can be achieved while the service hard isolation is realized.
In one possible implementation, to improve the quality of service, after the second communication device receives the first FlexE code block stream through two FlexE channels, further operations may be determined according to the time sequence of receiving the first FlexE code block stream from two FlexE channels. As an example, the second communication apparatus may forward the code block stream received by the FlexE channels corresponding to the earlier reception time, and not forward the code block stream received by the FlexE channels corresponding to the later reception time. To achieve this, in one specific example: the second communication device may buffer, to a first buffer unit, a code block included in the first FlexE code block stream received through the first FlexE channels. As a specific example, the second communication apparatus may buffer, after receiving the first sequence number, a code block stream belonging to the first client received after the first sequence number to the first buffer unit. Similarly, the second communication device may buffer the code blocks included in the first FlexE code block stream received through the second FlexE channels to a second buffer unit.
In a possible implementation manner, the second communication device may further receive the aforementioned second FlexE code block stream through the first FlexE channel, and buffer the code blocks included in the second FlexE code block stream to the first buffer unit. Further, the code blocks included in the first FlexE code block stream and the code blocks included in the second FlexE code block stream stored in the first buffer unit are extracted to execute a forwarding processing operation. As described above, the second communication apparatus may buffer, after receiving the first sequence number, the code block stream belonging to the first client received after the first sequence number to the first buffer unit. In one example, if the second communication device receives the second sequence number, the first buffer unit includes a code block stream belonging to the first client received between the first sequence number and the second sequence number. For this case, the second communication apparatus may extract the code block stream belonging to the first client received between the first sequence number and the second sequence number to perform a forwarding processing operation.
As an example, the forwarding processing operations mentioned in the embodiments of the present application may include forwarding and/or processing operations, where the forwarding operations may be, for example, forwarding the code block stream to a downstream node, and the processing operations may be, for example, recovering the client frame. In one example, the forwarding processing operations may be performed by a shim module of the second communication device.
In one possible implementation, the second communication device may further clear the code blocks belonging to the first FlexE code block stream stored in the second buffer unit, since the second sequence number has been received from the first FlexE channels. In this scenario, as an example, even though the second communication apparatus has not received the second sequence number from the second FlexE channel, the other code block streams belonging to the first client are not cached in the second cache unit until the second communication apparatus receives the second sequence number from the second FlexE channel, so as to avoid repeatedly caching the code block streams that have been received through the first FlexE channel and have performed the forwarding processing operation.
In one possible implementation, the second communication device receives a third FlexE code block stream over the first FlexE channel after receiving the first FlexE code block stream over the first FlexE channel, wherein the third FlexE code block stream includes a third sequence number. After receiving the first FlexE code block stream through the second FlexE channel, the second communication device receives the second FlexE code block stream through the second FlexE channel, where the second FlexE code block stream includes a second serial number, the first serial number, the second serial number, and the third serial number are numbered according to a preset rule, and code blocks included in the first FlexE code block stream, the second FlexE code block stream, and the third FlexE code block stream belong to the same client. For this case, the second communication apparatus may buffer the code blocks included in the third FlexE code block stream to the first buffer unit, and store the code blocks included in the second FlexE code block stream to the second buffer unit. Specifically, the second communication device may first clear the first buffering unit, and further buffer, to the first buffering unit, a code block stream belonging to the first client received after the third sequence number is received. The second communication device may store code blocks included in a second FlexE code block stream received within a period of time after receiving the first sequence number and before receiving the second sequence number to the second buffer unit. Further, the second communication apparatus may extract the code blocks stored in the second buffer unit to perform a forwarding processing operation.
In one possible implementation, a packet loss occurs in the first FlexE channel, for example, the second communication device does not receive the second FlexE code block stream carrying the second sequence number through the first FlexE channel before receiving the third FlexE code block stream through the first FlexE channel. The second communication device may also receive the second FlexE code block stream through the second FlexE channel, so as to avoid packet loss of data received by the second communication device.
In one possible implementation, the service transmission delay may be reduced as much as possible, for example, before the second communication device receives the third FlexE code block stream through the first FlexE channel, the second communication device receives the second FlexE code block stream carrying the second sequence number through the first FlexE channel. But the time when the second communication device receives the second serial number through the first FlexE channel is later than the time when the second communication device receives the second serial number through the second FlexE channel. For this case, the second communication apparatus may perform a forwarding processing operation on the second FlexE code block stream received through the second FlexE channels.
In one possible implementation, the first FlexE channels and the second FlexE channels are both FlexE small particle channels. For this case, with the present solution, it is possible to provide a service quality with almost zero packet loss for small particle traffic transmitted between the first communication device and the second communication device.
In one possible implementation, the first FlexE channels and the second FlexE channels are both FlexE large particle channels. For this case, with the present solution, it is possible to provide a service quality with almost zero packet loss for large-particle traffic transmitted between the first communication device and the second communication device.
In one possible implementation, the first FlexE code block stream may be a code block stream obtained after encoding a traffic stream. As an example, the traffic stream may be first encapsulated with a container, resulting in a container, and then the container is encoded, resulting in the first FlexE code block stream.
In one possible implementation, when the first FlexE channels and the second FlexE channels are large particle channels, the FlexE OH and FlexE payloads may be obtained after encoding the containers. For this case, the first FlexE code block stream may include FlexE OH and FlexE payloads, for which case the container may be carried over the FlexE payload.
In one possible implementation, when the first FlexE channels and the second FlexE channels are small particle channels, after encoding the container, a fgBU may be obtained, which may include fgBU OH and fgBU payloads. For this case, the first FlexE code block stream may include fgBUOH and fgBU payloads, and the container may be carried over the fgBU payload.
In one possible implementation manner, the container overhead may include verification information, where the verification information is used to verify the container overhead, so as to ensure validity of the container overhead, and correspondingly, ensure accuracy of the first serial number carried in the container overhead. As one example, the container overhead may include a check word field for carrying check information.
In one possible implementation, the first FlexE code block stream may include an O code block, the O code block including the first sequence number. As an example, a new O-code block may be defined and utilized to carry the first sequence number.
In one possible implementation manner, when the O-code block is utilized to carry the first sequence number, the first FlexE code block stream may further include first indication information, where the first indication information is used to indicate that the O-code block is used to carry the first sequence number.
In one possible implementation, a certain Idle code block in the first FlexE code block stream may be replaced with the first indication information.
In one possible implementation, to avoid excessive expansion of the first FlexE code block stream, the first indication information may be carried by a type field of the O code block.
In one possible implementation, the first FlexE code block stream may include an SDT code block sequence consisting of one S code block, at least one D code block, and one T code block, the SDT code block sequence including the first sequence number. As an example, a sequence of SDT code blocks may be newly defined and utilized to carry the first sequence number.
In a possible implementation manner, when the SDT code block sequence is used to carry the first sequence number, the first FlexE code block stream may further include second indication information, where the second indication information is used to indicate that the SDT code block sequence carries the first sequence number.
In one possible implementation, a certain Idle code block in the first FlexE code block stream may be replaced with the second indication information.
In one possible implementation, to avoid excessive spreading of the first FlexE code block stream, the second indication information may be carried by a T code block of the SDT code block sequence.
In a possible implementation manner, the T code block in the SDT code block carrying the first sequence number may include a control block, where the control block is configured to carry the second indication information. In this way, the SDT code block carries both the first sequence number and the second indication information.
In a possible implementation manner, a field may be defined in the control block to carry the second indication information, and embodiments of the present application are not particularly limited to a field in the control block for carrying the second indication information, and as an example, the field may be a magic word field.
In one possible implementation, the first FlexE code block stream may include a preamble, which is used to carry the first sequence number. Wherein: the preamble is a part of an S code block in the SDT code block sequence. As an example, a new preamble may be newly defined and used to carry the first sequence number.
In a possible implementation manner, when the preamble is used to carry the first sequence number, third indication information may be further included in the first FlexE code block stream, where the third indication information is used to indicate that the first sequence number is carried in the SDT code block sequence. In one example, a certain Idle code block in the first FlexE code block stream may be replaced with the third indication information. In yet another example, to avoid excessive spreading of the first FlexE code block stream, the third indication information may also be carried by the S code block to which the preamble belongs. For example, the first sequence number may be carried with a part of a field of a preamble included in the S-code block, and the third indication information may be carried with another part of a field of a preamble included in the S-code block.
In one possible implementation, when the first FlexE code block stream is used to carry small-particle traffic, the first FlexE code block stream includes fgBU OH and fgBU payloads. For this case, in one example, the fgBU OH may include the first sequence number. In the scenario where the first serial number is carried through fgBU OH, the fgBU OH may further include an fg-client identifier. The fg-client identifier may be an identifier of the fg-client to which the first FlexE code block stream belongs. The fg-client identifier may enable the receiving end to buffer, based on the fg-client, code block streams received from the plurality FlexE of channels and corresponding to the fg-client identifier.
In a possible implementation manner, when the fgBU OH is used to carry the first sequence number, a fourth indication information may be further included in the first FlexE code block stream, where the fourth indication information is used to indicate that the first sequence number is carried in the fgBU OH. In one example, the fourth indication information may be carried by an identification field in the fgBU OH.
In one possible implementation, the service carried by the first FlexE code block flow may be CBR service. For this case, with the present solution, it is possible to provide a service quality of almost zero packet loss for CBR traffic transmitted between the first communication device and the second communication device.
In one possible implementation, the traffic carried by the first FlexE code block stream may be VBR traffic. In one example, VBR traffic may also be referred to as ethernet-CBR traffic. In some scenarios, VBR traffic can also be understood directly as ethernet traffic. For this case, with the present solution, it is possible to provide a quality of service with almost zero packet loss for VBR traffic transmitted between the first communication apparatus and the second communication apparatus.
In a possible implementation manner, when the service carried by the first FlexE code block flow is VBR service, the first FlexE code block flow further includes a slice type identifier and slice length information, where the slice type identifier is used to identify a slice type corresponding to the first FlexE code block flow, and the slice type includes: a head slice, a middle slice, or a tail slice, the slice length information identifying a valid data length carrying a payload portion of the first FlexE code block stream.
In a third aspect, an embodiment of the present application provides a first communication apparatus, where the first communication apparatus includes a transceiver unit and a processing unit. The transceiver unit is configured to perform operations related to receiving and/or transmitting performed by the first communication device in the foregoing first aspect and various possible implementations of the first aspect; the processing unit is configured to perform operations other than the operations related to receiving and/or transmitting performed by the first communication device in the above first aspect and various possible implementations of the first aspect. In a specific implementation, the transceiver unit may include a receiving unit and/or a transmitting unit, where the receiving unit is configured to perform a reception-related operation, and the transmitting unit is configured to perform a transmission-related operation.
In one specific example: the first communication device includes a transmitting unit configured to transmit a first flexible ethernet FlexE code block stream to the second communication device through a first FlexE channel between the first communication device and the second communication device, where the first FlexE code block stream includes a first sequence number, and the first sequence number identifies a transmission order of the first FlexE code block stream; and transmitting the first FlexE code block stream to the second communication device through a second FlexE channel between the first communication device and the second communication device.
In one possible implementation, the first FlexE channels and the second FlexE channels are both FlexE small particle channels.
In one possible implementation, the first FlexE channels and the second FlexE channels are both FlexE large particle channels.
In one possible implementation manner, the first FlexE code block stream is a FlexE code block stream obtained by encoding a container, where the container includes a container overhead and a container payload, the container overhead includes the first sequence number, and the container payload carries service data.
In a possible implementation manner, the container overhead further includes verification information, where the verification information is used to verify the container overhead.
In one possible implementation, the first FlexE code block stream carries small-particle traffic, the first FlexE code block stream includes fine-grained base unit overheads fgBU OH and fgBU payloads, and the fgBU payload includes the container.
In one possible implementation, the first FlexE code block stream includes an O code block, the O code block including the first sequence number.
In one possible implementation manner, the first FlexE code block stream further includes first indication information, where the first indication information is used to indicate that the O code block includes the first sequence number.
In one possible implementation, the type field of the O-code block is used to carry the first indication information.
In one possible implementation, the first FlexE code block stream includes an SDT code block sequence consisting of one start S code block, at least one data D code block, and one end T code block, the SDT code block sequence including the first sequence number.
In a possible implementation manner, the SDT code block sequence further includes second indication information, where the second indication information is used to indicate that the SDT code block includes the first sequence number.
In a possible implementation manner, the T-code block includes a control block, where the control block is used to carry the second indication information.
In one possible implementation, the second indication information is a magic word.
In one possible implementation, the first FlexE code block stream includes a preamble, the preamble including the first sequence number.
In one possible implementation manner, the first FlexE code block flow includes third indication information, where the third indication information is used to indicate that the preamble includes the packet sequence number.
In one possible implementation, the first FlexE code block stream includes fgBU OH and fgBU payloads, the fgBU OH includes the first sequence number, and the fgBU OH further includes a fine-grained client fg-client identification.
In one possible implementation, the first FlexE code block stream carries fixed bit rate CBR traffic.
In one possible implementation, the first FlexE code block stream carries variable bit rate VBR traffic.
In one possible implementation, the apparatus further includes: an obtaining unit, configured to obtain the first flexible ethernet FlexE code block stream; and a processing unit, configured to replicate the first FlexE code block stream to obtain a plurality of first FlexE code block streams, so that the plurality of first FlexE code block streams are sent to the second communication device through a plurality of FlexE channels between the first communication device and the second communication device, where the plurality of FlexE channels include the first FlexE channel and the second FlexE channel.
In a possible implementation manner, the apparatus includes an obtaining unit further configured to: acquiring a second FlexE code block stream, wherein the second FlexE code block stream comprises a second sequence number, the second sequence number identifies the sending sequence of the second FlexE code block stream, the first sequence number and the second sequence number are numbered according to a preset rule sequence, and the code blocks included in the first FlexE code block stream and the code blocks included in the second FlexE code block stream belong to the same client; the sending unit is further configured to send the second FlexE code block stream to the second communication device through the first FlexE channel; and sending the second FlexE code block stream to the second communication device through the second FlexE channels.
In a fourth aspect, an embodiment of the present application provides a second communication device, where the second communication device includes a transceiver unit and a processing unit. The transceiver unit is configured to perform the operations related to receiving and/or transmitting performed by the second communication device in the foregoing second aspect and various possible implementation manners of the second aspect; the processing unit is configured to perform operations other than the operations related to receiving and/or transmitting performed by the second communication device in the above second aspect and various possible implementations of the second aspect. In a specific implementation, the transceiver unit may include a receiving unit and/or a transmitting unit, where the receiving unit is configured to perform a reception-related operation, and the transmitting unit is configured to perform a transmission-related operation.
In one specific example: the second communication device includes a receiving unit configured to receive a first FlexE code block stream sent by a first communication device through a first FlexE channel between the first communication device and the second communication device, where the first FlexE code block stream includes a first sequence number, and the first sequence number identifies a transmission order of the first FlexE code block stream, and receive the first FlexE code block stream sent by the first communication device through a second FlexE channel between the first communication device and the second communication device.
In one possible implementation, the apparatus further includes: and the processing unit is used for caching the code blocks included in the first FlexE code block stream received through the first FlexE channel into a first caching unit and caching the code blocks included in the first FlexE code block stream received through the second FlexE channel into a second caching unit.
In a possible implementation manner, the receiving unit is further configured to receive a second FlexE code block stream through the first FlexE channel, where the second FlexE code block stream includes a second sequence number, the first sequence number and the second sequence number are numbered according to a preset rule sequence, and a code block included in the first FlexE code block stream and a code block included in the second FlexE code block stream belong to the same client; the device comprises a processing unit and a first buffer unit, wherein the processing unit is further used for buffering the code blocks included in the second FlexE code block stream to the first buffer unit; and extracting the code blocks included in the first FlexE code block stream and the code blocks included in the second FlexE code block stream stored in the first buffer unit to execute forwarding processing operation.
In a possible implementation manner, the processing unit is further configured to: and clearing the code blocks belonging to the first FlexE code block stream stored in the second cache unit.
In a possible implementation manner, the receiving unit is further configured to receive a third FlexE code block stream through the first FlexE channel, where the third FlexE code block stream includes a third sequence number; receiving a second FlexE code block stream through the second FlexE channel, wherein the second FlexE code block stream comprises a second serial number, the first serial number, the second serial number and the third serial number are numbered according to a preset rule sequence, and code blocks included in the first FlexE code block stream, the second FlexE code block stream and the third FlexE code block stream belong to the same client; the processing unit is further configured to cache a code block included in the third FlexE code block stream to the first cache unit; storing code blocks included in the second FlexE code block stream to the second buffer unit; and extracting the code blocks stored by the second buffer unit to execute forwarding processing operation.
In one possible implementation, the first communication device does not receive the second FlexE code block stream carrying the second sequence number over the first FlexE channel before receiving the third FlexE code block stream over the first FlexE channel.
In one possible implementation, the first FlexE channels and the second FlexE channels are both FlexE small particle channels.
In one possible implementation, the first FlexE channels and the second FlexE channels are both FlexE large particle channels.
In one possible implementation manner, the first FlexE code block stream is a FlexE code block stream obtained by encoding a container, where the container includes a container overhead and a container payload, the container overhead includes the first sequence number, and the container payload carries service data.
In a possible implementation manner, the container overhead further includes verification information, where the verification information is used to verify the container overhead.
In one possible implementation, the first FlexE code block stream carries small-particle traffic, the first FlexE code block stream includes fine-grained base unit overheads fgBU OH and fgBU payloads, and the fgBU payload includes the container.
In one possible implementation, the first FlexE code block stream includes an O code block, the O code block including the first sequence number.
In one possible implementation manner, the first FlexE code block stream further includes first indication information, where the first indication information is used to indicate that the O code block includes the first sequence number.
In one possible implementation, the type field of the O-code block is used to carry the first indication information.
In one possible implementation, the first FlexE code block stream includes a code block sequence consisting of one start S code block, at least one data D code block, and one end T code block, and the SDT code block sequence includes the first sequence number.
In a possible implementation manner, the SDT code block sequence further includes second indication information, where the second indication information is used to indicate that the SDT code block includes the first sequence number.
In a possible implementation manner, the T-code block includes a control block, where the control block is used to carry the second indication information.
In one possible implementation, the second indication information is a magic word.
In one possible implementation, the first FlexE code block stream includes a preamble, the preamble including the first sequence number.
In one possible implementation manner, the first FlexE code block flow includes third indication information, where the third indication information is used to indicate that the preamble includes the packet sequence number.
In one possible implementation, the first FlexE code block stream includes fgBU OH and fgBU payloads, the fgBU OH includes the first sequence number, and the fgBU OH further includes a fine-grained client fg-client identification.
In one possible implementation, the first FlexE code block stream carries fixed bit rate CBR traffic.
In one possible implementation, the first FlexE code block stream carries variable bit rate VBR traffic.
In a fifth aspect, an embodiment of the present application provides an apparatus. The apparatus includes a processor and a memory. The memory is used to store instructions or computer programs. The processor is configured to execute the instructions or computer program in the memory, to perform the method of any of the first aspect above, or to perform the method of any of the second aspect above.
In a sixth aspect, embodiments of the present application provide a computer readable storage medium comprising instructions or a computer program which, when run on a computer, cause the computer to perform the method of any of the first aspects above, or to perform the method of any of the second aspects above.
In a seventh aspect, embodiments of the present application provide a computer program product comprising instructions or a computer program which, when run on a computer, cause the computer to perform the method of any of the first aspects above, or to perform the method of any of the second aspects above.
In an eighth aspect, an embodiment of the present application provides a communication system, including: a first communication device performing the method of any of the first aspects above, and a second communication device performing the method of any of the second aspects above.
Drawings
In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings that are required to be used in the embodiments or the description of the prior art will be briefly described below, and it is obvious that the drawings in the following description are only some embodiments described in the present application, and other drawings may be obtained according to the drawings without inventive effort to those skilled in the art.
FIG. 1a is a schematic diagram of an SPN architecture supporting small particle technology according to an embodiment of the present application;
Fig. 1b is a schematic diagram of a network architecture according to an embodiment of the present application;
Fig. 2 is a schematic diagram of an application scenario provided in an embodiment of the present application;
Fig. 3 is a signaling interaction diagram of a communication method according to an embodiment of the present application;
FIG. 4a is a schematic structural view of a container according to an embodiment of the present application;
fig. 4b is a schematic structural diagram of an O-code block according to an embodiment of the present application;
fig. 4c is a schematic structural diagram of an SDT code block sequence according to an embodiment of the present application;
fig. 4d is a schematic structural diagram of fgBU OH according to an embodiment of the present application;
fig. 5 is a schematic view of an application scenario provided in an embodiment of the present application;
fig. 6 is a schematic structural diagram of a communication device according to an embodiment of the present application;
Fig. 7 is a schematic structural diagram of a communication device according to an embodiment of the present application;
fig. 8 is a schematic structural diagram of a communication device according to an embodiment of the present application.
Detailed Description
The embodiment of the application provides a communication method and a communication device, which can achieve the communication effect of almost zero packet loss under the scene of adopting technology to communicate between network devices, thereby providing higher service quality for services.
For ease of understanding, the relevant content of FlexE will be described first.
FlexE group: each FlexE group includes one or more PHYs. When multiple PHYs are included, the multiple PHYs are physically independent. The network device to which FlexE technology is applied may implement logical bundling of multiple PHYs by identifying which PHYs are included in one FlexE group through the numbering of the PHYs. For example, the number of each PHY may be identified by a number between 1 and 254, with 0 and 255 being reserved numbers. The number of one PHY may correspond to one interface on the network device. The same number is used between two adjacent network devices to identify the same PHY. The number of each PHY included in one FlexE group need not be consecutive. Typically, there is one FlexE group between two network devices, but the application is not limited to only one FlexE group between two network devices, i.e., there may be multiple FlexE group between two network devices. One PHY may be used to carry at least one client, and one client may transmit on at least one PHY. FlexE can support mapping and transmission of any number of different FlexE Client on any set of PHYs, thereby implementing functions such as PHY bundling, channelization, and subrate.
FlexE Client various user interfaces or bandwidths corresponding to the network. FlexE Client represents a customer data stream transmitted over a designated time slot (time slot or slots) FlexE Group, one FlexE Group may carry a plurality FlexE Client, and one FlexE Client may correspond to one to a plurality of customer service data streams (also referred to as MAC CLIENT). FlexE client is flexibly configurable according to bandwidth requirements, and supports various rates of ethernet Media Access Control (MAC) data streams (e.g., 10G, 40G, n x 25G data streams, and even non-standard rate data streams), for example, the data streams may be delivered to FlexE shim layers by 64B/66B coding. Clients transmitting through the same FlexE group need to share the same clock and these clients need to adapt according to the assigned slot rate. In the present application, flexE client (also referred to as FlexE client interface) may be used to transmit the corresponding traffic data stream of FlexE client. The FlexE client interface is a logical interface. Each FlexE interface may be logically divided into one or more FlexE client interfaces, each FlexE interface may be time-domain divided into a plurality of time slots, and each FlexE client interface occupies at least one of the plurality of time slots. Wherein: 64/66B means that the data code block includes 66 bits, the first two bits of the 66 bits are sync bits, the last 64 bits are data bits, and at the PCS layer, 64/66B can be extracted by the first two sync bits.
FlexE shim as an additional logical layer interposed between the MAC and PHY (PCS sublayers) of the conventional ethernet architecture, is a core architecture for implementing FlexE technology based on a slot distribution mechanism. For the transmitting end, flexE shim has the main role of encapsulating the data into pre-divided slots (slots). Then, each divided slot is mapped to PHY in FlexE group for transmission according to FlexE slot table. Wherein each slot maps to one PHY in FlexE group. Taking 100GE PHY as an example, flexE Shim layers may divide each 100GE PHY in FlexE Group into 20 slots (slots) of data-carrying channels, each slot corresponding to a bandwidth of 5Gbps. Each time the PHY transmits 1023 x 20slot 64/66B data, a FlexE Overhead (OH) is inserted, so as to inform the receiving end how to parse the received data.
Small particle traffic: in some embodiments, slots corresponding to a large bandwidth may be further divided into a plurality of sub-slots (sub-slots) for carrying customer traffic with smaller bandwidth requirements, which is also referred to as small-particle traffic. For example, the large bandwidth may be understood as a bandwidth corresponding to a service layer of the small-particle service. For example, when the service layer of the small-particle service is an MTN channel layer, the bandwidth of the MTN channel layer is 5Gbps, slots corresponding to the large bandwidth of 5Gbps are further divided into 480 sub-slots according to the granularity of 10Mbps, and the 480 sub-slots are used for carrying the small-particle service. For example, the 1 st sub-slot, the 3 rd sub-slot, and the 5 th sub-slot of the 480 sub-slots are used to carry the small particle service 1. For another example, when the service layer of the small-particle service is a 10GE ethernet physical layer, the corresponding large bandwidth is further divided into a plurality of sub-slots according to finer granularity, and the sub-slots are used for carrying the small-particle service. It follows that small particle bandwidth granularity is finer, small particle traffic refers to traffic that has relatively less bandwidth requirements. For example, the bandwidth requirement of the dedicated power line service is 10Mbps, and at this time, the dedicated power line service can be allocated with a specified bandwidth by using a small-grain technology, so as to be used for carrying the service traffic of the dedicated power line service, where the dedicated power line service is a small-grain service.
When transmitting the small-granule service, for the transmitting end, flexE shim may package data into the sub-slots divided in advance according to the time slot configuration of the small granule in an example for transmission. For the receiving end, flexE shim can restore the data received through the slot with the corresponding bandwidth of 5Gbps into the original small-granule service data according to the slot configuration of the small-granule and continue to transmit. In yet another example, for a transmitting end, data may be encapsulated into a corresponding sub-slot for transmission by using an MTN channel layer adaptation function (MTN path adaptation function), and for a receiving end, data received through the slot with a corresponding bandwidth of 5Gbps may be recovered into original small-particle service data by using the MTN channel layer adaptation function and transmitted continuously.
In one example, the small particle business data may be carried in a small particle unit (fine granularity unit, FGU) base frame. In one example, small particle units, also referred to as fgBU, may be used interchangeably in embodiments of the present application.
Correspondingly, in a scenario that a slot corresponding to a large bandwidth is not divided into a plurality of sub-slots, a service carried by the slot corresponding to the large bandwidth may be referred to as a large-granule service.
Regarding FlexE OH insertion and the structure of overhead frames, in one specific implementation, reference may be made to the relevant description section of the electrical and optical internet forum (optical internetworking forum, OIF) regarding FlexE, which is not described in detail herein.
One possible architecture for a Slice Packet Network (SPN) that supports small particle technology is described next. Referring to fig. 1a, a schematic diagram of an SPN architecture supporting small particle technology according to an embodiment of the present application is shown.
As shown in fig. 1a, the SPN architecture includes:
Slice packet layer (SLICING PACKET LAYER, SPL), slice lane layer (SLICING CHANNEL LAYER, SCL), slice transport layer (slicing transport layer, STL), control-in-one software defined network (software defined network, SDN) slice control plane and ultra-high precision event frequency synchronization techniques. Wherein:
The SCL includes an FGU layer, an MTN path (MTNP) layer, and an MTN segment (MTNS) layer. Wherein: FGU layer provides end-to-end deterministic low-delay N10 Mbps granularity hard slice channel for small particle service. The FGU layer is an independent sublayer, and can be flexibly carried on an MTN channel layer or an Ethernet physical layer according to requirements, in other words, a service layer of the FGU layer can be the MTN channel layer or the Ethernet physical layer.
The STL adds a 10GE Ethernet physical layer interface based on the original high-speed Ethernet physical layer interface. The 10GE Ethernet physical layer can be applied to customer terminal equipment (CPE) scenes to directly bear the FGU layer.
Next, taking the MTN channel layer as an example to carry small particle service, the MTNS and MTNP will be described from the perspective of the sending side behavior and the receiving side behavior.
The transmit-side behavior and the receive-side behavior of MTNS will be described first.
In one example, taking a 100GBASE-R PHY as an example, MTNS provides point-to-point connections, is responsible for time-slotted processing of adjacent nodes that connect Ethernet PHYs together, and provides binding, subrate, and tunneling functions. MTNS are bi-directionally symmetrical, and are described herein as one direction of data transmission.
On the transmitting side, MTNS inserts a special O code block in the 66B code block sequence, inserts a D code block after 1023×20 66B code blocks, inserts a D code block after every 1023×20 66B code blocks, and needs to insert 7D code blocks in total. After inserting the 7 th D code block, a special O code block is inserted after another 1023 x 20 code blocks are spaced apart. Thus, a total of 8 x (1023 x 20+1) code blocks constitute one MTNS frame (frame).
The O code block plus the 7D code blocks described above constitutes the overhead of MTNS frames. Overhead carries some point-to-point link configuration information, e.g., slot configuration information, packet group configuration information, etc., of the indication MTNS.
MTNS continuously transmit data to the receiving end according to the frame structure. The continuous MTNS frames are equivalent to a 66B code block stream, and are transmitted from the transmitting device as bits, optical signals, or other analog signals such as electrical pulses, according to the lower PHY layer protocol defined by the Institute of Electrical and Electronics Engineers (IEEE) 802.3.
The receiving side first locks the frame header of MTNS frames by identifying the O-code blocks by the received signal (e.g., bits, optical signals, or other analog signals such as electrical pulses) according to the protocol of the ethernet layer PHY (Ethernet lower PHY layer), and knows that the next overhead code block occurs after 1023 x 20 code blocks according to a fixed count. Correspondingly, the receiving side can determine the position of the data corresponding to each time slot in the received signal according to the O code block.
MTNS can only provide point-to-point connections, while the MTNP is responsible for providing "end-to-end channel connections" from network ingress to network egress, providing end-to-end rigid hard pipe connections, providing management maintenance and protection (OAM and protection, OAMP) functions. A typical network related to MTNP may be shown in fig. 1b, and fig. 1b is a schematic diagram of a network architecture according to an embodiment of the present application.
The transmit side behavior and the receive side behavior of the MTNP are described next in connection with fig. 1 b.
As shown in fig. 1b, an end-to-end MTNP is included between Provider Edge (PE) 1 and PE2, and a point-to-point MTNS is included between PE1 and PE 2.
On the network side interface (network to network interface, NNI) side of PE1, the MTNP layer obtains a client signal, which may be a MAC frame, from the MAC layer. The MAC referred to herein may be a processing module of the MAC layer. After the MTNP layer obtains the MAC frame, the MAC frame is encoded into a series of 64/66B code block sequences. Specifically, each MAC frame is encoded into a series of 66B code block sequences defined by a start code block (S code block) and an end code block (i.e., T code block), and a series of MAC frame sequences is encoded into a series of 66B code block sequences.
In one example, if there is no valid MAC frame waiting to be sent, the MTNP will fill the 66B code block with I code blocks, thereby ensuring that the hard pipe of the MTNP has data to send from time to time.
The receiving side of the P node first identifies MTNS frames according to the receiving side behavior of MTNS described above. The MTNP data is then recovered from the assigned MTNS slots according to the pre-configuration. The P node then performs MTNP forwarding. Here, the essential difference between MTNP forwarding and IP forwarding and MAC bridge forwarding is that: MTNP forwards exclusive device forwarding resources without supporting statistical multiplexing, and both the ingress and egress of a network node (e.g., P-node) need to be configured with the same number MTNS of slots.
As described above, in some embodiments, slots corresponding to a large bandwidth may be further divided into a plurality of sub-slots for carrying small particle traffic. For example, slots with the corresponding bandwidth of 5Gbps are further divided according to the granularity of 10Mbps, and 480 sub-slots are divided, and the 480 sub-slots are used for carrying small-particle service. For this case, the MTN FGU may further divide 480 slots of 10Mbps in the MTNP of 5Gbps in a hierarchical manner. In this scenario, the MTNP and MTN FGU may be decoupled, in which case the MTNP acts as a service layer for the MTN FGU. In one example, the fg-BU may include FGU base frame overhead and FGU base frame payload. The FGU base frame overhead may be used to carry timeslot information of small particles, and the FGU base frame payload is used to carry the small particle service data. The time slot information of the small particles can be a mapping relation between sub-slots and sub-clients. Wherein sub-clients are similar to FlexE client and also correspond to various user interfaces or bandwidths of the network. The difference from FlexE client is that: the sub-clients represent client data streams transmitted on sub-slots, and one sub-client may correspond to one or more sub-slots.
For a scenario in which slots with a corresponding bandwidth of 5Gbps are further partitioned at a granularity of 10Mbps, in one example, one FGU base frame may include 24 sub-slots, each sub-slot including 65 bytes, each sub-slot may carry 8 65-bit code blocks. In other words, the aforementioned base frame payload 120 may include 65×24=1560 bytes. The 20 FGU base frames constitute a multiframe in which 24×20=480 sub-slots are provided. For the NNI transmission side of PE1, the MTN FGU layer, like the MTNP, encodes the MAC frame client signal into a 66B code block sequence and then inserts the OAM code block. At this time, inserted into the MTN FGU layer is an OAM code block of a small particle MTNP (fgMTNP) instead of an OAM code block of the MTNP. Then, a series of 66B code block sequences containing fgMTNP OAM code blocks are mapped into 10Mbps slots designated according to the pre-configuration in fg-BU.
The fgBU sequence itself is actually a string of 66B code blocks, which may be equivalently MTNP client signals, after insertion of the MTNP OAM code blocks, are mapped into MTNS assigned slots according to the above-described MTNS transmit side behavior.
The receiving side of the P node recovers the MTNP signal according to the above-described behavior of the receiving side of the MTNP, and then extracts the OAM code block in the MTNP. After the receiving side of the P node recovers the MTNP signal, the framing of fg-BU can be completed by searching for the S code block.
The P node performs fgMTNP forwarding, and fgMTNP forwarding is TDM forwarding, exclusive equipment forwarding resources, and does not support statistical multiplexing, as in MTNP forwarding. The P node does not terminate the OAM code block of fgMTNP.
The sender-side behavior of the P-node is the inverse of the receiver-side behavior of the P-node and will not be described in detail here. In addition, the receiving-side behavior of the PE2 node is the inverse of the transmitting-side behavior of the PE1 node, which is not described in detail here.
For other content in the SPN architecture shown in fig. 1a, reference may be made to the relevant description in the chinese mobile SPN small particle white paper, which is not described in detail here.
Although in the above description, the MAC frames are encoded using a 64/66B encoding scheme, the above is only shown as one possible implementation, and the encoding technique used to encode the MAC frames is not limited to the 64/65B scheme described above. For example, the MAC frame can also be encoded by a 64/65B encoding mode; for another example, the MAC frame may be encoded using 256/257B coding, and so on, although not illustrated herein.
At present, in order to improve the communication quality of FlexE technologies, the packet loss rate is reduced as much as possible, so that higher service quality is provided for the service, and unidirectional or bidirectional path protection can be realized for the point-to-point SPN Ethernet dedicated line. In the protection scheme, on-off detection can be performed on the SPN CHANNEL layers according to the slice channel layer OAM, wherein SPN CHANNEL OAM can adopt a mechanism for replacing an Idle code block to realize rate adaptation, fixed-period OAM is transmitted periodically at the time of T+DeltaT, and OAM is transmitted at a position where the Idle code block is required to be transmitted. Wherein: t is SPN CHANNEL OAM transmission cycles. After SPN CHANNEL OAM is sent, if no message fed back by the opposite terminal for the SPN CHANNEL OAM is received in 3 detection periods, the link may be considered as broken, so that the service is switched to the backup path for transmission, and the normal operation of the service is maintained.
However, with this protection scheme, since a certain switching time is required from determining the link interruption to switching the traffic to the backup path, the traffic is interrupted during the switching time.
In view of this, the embodiment of the application provides a communication method and a device, which can achieve a communication effect of almost zero packet loss under the scene of adopting technology to communicate between network devices, thereby providing higher service quality for services.
Referring to fig. 2, the diagram is a schematic diagram of an application scenario provided in an embodiment of the present application. In the scenario shown in fig. 2, communications between the Provider Edge (PE) 1 and PE2 may be performed through FlexE technologies. In one example, a plurality FlexE of lanes may be included between PE1 and PE2, and for ease of understanding, FIG. 2 shows 2 FlexE lanes, flexE channel-1 and FlexE channel-2, respectively. Wherein FlexE channel-1 includes provider backbone equipment (P) 1, and P1 may communicate with PE2 through P1; flexE channel-1 includes P2, and PE1 may communicate with PE2 via P2.
In one example, flexE channel-1 and FlexE channel-2 may be large particle channels for carrying large particle traffic. In yet another example, flexE channel-1 and FlexE channel-2 may be small particle channels for carrying small particle traffic.
Next, a communication method provided by the embodiment of the present application will be described with reference to the scenario shown in fig. 2.
Referring to fig. 3, the signaling interaction diagram of a communication method provided by the embodiment of the present application is shown in fig. 3, where in the method 100 shown in fig. 3, a first communication device may, for example, correspond to PE1 shown in fig. 2, and a second communication device may, for example, correspond to PE2 shown in fig. 2. The first FlexE lanes in method 100 may correspond to FlexE channel-1 shown in fig. 2, and the second FlexE lanes in method 100 may correspond to FlexE channel-2 shown in fig. 2.
The communication device mentioned in the embodiment of the present application may be a network device such as a switch, a router, or a part of components on the network device, for example, a board, a line card on the network device, or a functional module on the network device, or a chip for implementing the method of the present application, and the embodiment of the present application is not specifically limited. The communication devices may be directly connected to each other, for example, but not limited to, via an ethernet cable or an optical cable. When the communication device is a chip, the interface circuit for performing the transceiving operation in the present application may include, for example, a chip, and the circuit for performing the processing operation may include, for example, a circuit having a processing function in a chip.
In the embodiment of the present application, the first communication device corresponds to PE1, which may be understood that the first communication device is the PE1 itself, or may be understood that the first communication device is a part of a component on the PE 1. Similarly, the second communication device corresponds to PE2, and it is understood that the second communication device is the PE2 itself, and it is also understood that the second communication device is a part of the components on PE 2.
The code block stream mentioned in the embodiment of the present application may include a plurality of code blocks, and the code block stream may also be referred to as "code stream".
The method 100 shown in fig. 3 may include, for example, the following S101-S104.
S101: the first communication device sends a first flexible ethernet FlexE code block stream to a second communication device through a first FlexE channel between the first communication device and the second communication device, the first FlexE code block stream including a first sequence number that identifies a transmission order of the first FlexE code block stream.
S102: the first communication device sends the first FlexE code block stream to the second communication device through a second FlexE channel between the first communication device and the second communication device.
In one example, the first communication device may obtain (e.g., generate) the first FlexE code block stream and send the FlexE code block stream to a second communication device over a first FlexE channel and a second FlexE channel, respectively. In one example, after the first communication device obtains the first FlexE code block streams, the first FlexE code block streams may be duplicated to obtain multiple first FlexE code block streams. For example, the first FlexE code block stream may be duplicated to obtain two first FlexE code block streams, where one first FlexE code block stream is sent to the second communication device through the first FlexE channel, and the other first FlexE code block stream is sent to the second communication device through the second FlexE channel. In one example, the first FlexE code block stream is replicated, and a mirror image of the first FlexE code block stream may be obtained.
In yet another example, the first communication device may generate a plurality of first FlexE streams of code blocks. For example, two first FlexE code block streams may be generated, one of the first FlexE code block streams being transmitted to the second communication device via a first FlexE channel and the other of the first FlexE code block streams being transmitted to the second communication device via a second FlexE channel.
In the embodiment of the present application, when the first FlexE channels and the second FlexE channels are large-particle channels, the first FlexE code block stream is used for carrying large-particle traffic, and when the first FlexE channels and the second FlexE channels are small-particle channels, the first FlexE code block stream is used for carrying small-particle traffic.
In one example, the first FlexE code block stream includes code blocks belonging to a first client. When the first FlexE code block stream carries small-particle service, the code blocks included in the first FlexE code block stream belong to a first sub-client, and when the first FlexE code block stream carries large-particle service, the code blocks included in the first FlexE code block stream belong to a first FlexE client. The first sequence number identifies the transmission order of the first FlexE code block stream, which can be understood as the first sequence number identifies the transmission order of the first FlexE code block stream in the corresponding client.
In the embodiment of the present application, the service carried by the first FlexE code block flow may be CBR service or VBR service, and the embodiment of the present application is not limited specifically. In one example, VBR traffic may also be referred to as ethernet-CBR traffic. In some scenarios, VBR traffic can also be understood directly as ethernet traffic. In an example, when the service carried by the first FlexE code block flow is VBR service, the first FlexE code block flow further includes a slice type identifier and slice length information, where the slice type identifier is used to identify a slice type corresponding to the first FlexE code block flow, and the slice type includes: a head slice, a middle slice, or a tail slice, the slice length information identifying a valid data length carrying a payload portion of the first FlexE code block stream.
In one example, the first FlexE code block stream may be a code block stream obtained after encoding. In one example, the first FlexE code block stream may be a code block stream obtained after encoding a traffic stream. In yet another example, the traffic stream may be first encapsulated with a container, resulting in a container, and then the container is encoded, resulting in the first FlexE code block stream.
In one example, when the first FlexE channels and the second FlexE channels are large particle channels, the FlexE OH and FlexE payloads may be obtained after encoding the containers. For this case, the first FlexE code block stream may include FlexE OH and FlexE payloads, for which case the container may be carried over the FlexE payload.
In yet another example, when the first FlexE channels and the second FlexE channels are small particle channels, after encoding the container, a fgBU may be obtained, which may include fgBU OH and fgBU payloads. For this case, the first FlexE code block stream may include fgBUOH and fgBU payloads, and the container may be carried over the fgBU payload.
In the embodiment of the application, the container is a packaging structure provided by the application and is used for packaging the service flow.
With respect to the container, the structure of the container may be understood with reference to fig. 4a, and fig. 4a is a schematic structural diagram of a container according to an embodiment of the present application. As shown in fig. 4 a: the container may include a container overhead and a container payload, the container overhead may be used to carry the first sequence number. For example, the container overhead may include a sequence number field, where the sequence number field is used to carry the first sequence number. The container payload may be used to carry traffic flows. When the first FlexE channels and the second FlexE channels are large-particle channels, the container payload may be used to carry traffic flows corresponding to a plurality of clients; when the first FlexE channels and the second FlexE channels are small particle channels, the container payload may be used to carry traffic flows corresponding to multiple sub-clients.
In one example, the container overhead may include verification information, where the verification information is used to verify the container overhead, so as to ensure validity of the container overhead, and correspondingly, ensure accuracy of the first sequence number carried in the container overhead. As one example, the container overhead may include a check word field for carrying check information.
In one example, as shown in fig. 4a, the container overhead may include an overhead control field in addition to a sequence number field and a check word field, which may be used to indicate that the container overhead carries the first sequence number, as an example.
In addition, when the service carried by the first FlexE code block flow is VBR service, the container overhead may further include a slice type identifier and slice length information. For example, the container overhead may include a slice type field for carrying the slice identifier and a slice length field for carrying the slice length information.
In one example, the first FlexE code block stream may include an O code block including the first sequence number. As an example, a new O-code block may be defined and utilized to carry the first sequence number. In one example, when the O-code block is used to carry the first sequence number, the first FlexE code block stream may further include first indication information, where the first indication information is used to indicate that the O-code block is used to carry the first sequence number. The embodiment of the application does not specifically limit the carrying position of the first indication information in the first FlexE code block stream. In one example, a certain Idle code block in the first FlexE code block stream may be replaced with the first indication information. In yet another example, to avoid excessive spreading of the first FlexE code block stream, the first indication information may be carried by a type field of the O code block.
Regarding the O-code block, reference may be made to fig. 4b, and fig. 4b is a schematic structural diagram of an O-code block according to an embodiment of the present application. As shown in fig. 4a, the O-code block may include a type (type) field, 4 value (value) fields, a value 1 field, a value 2 field, a value 3 field, and a value 4 field, respectively. A sequence number (SEQ) field and a cyclic redundancy check (cyclic redundancy check, CRC) field are also included.
In one example, the type field may be used to carry first indication information, and one or more of the 4 value fields are used to carry the first sequence number. For example, the 3 value fields, value 1 field, value 2 field, and value 3 field, are used to carry the first sequence number.
Other fields, such as the SEQ field and the reserved field, may be set according to practical situations, and are not specifically limited herein. For example, the value 3 field may be used to carry the check information corresponding to the O-code block. The value of the SEQ field may be a default value.
In one example, the first FlexE code block stream may include an SDT code block sequence consisting of one S code block, at least one D code block, and one end T code block, the SDT code block sequence including the first sequence number. As an example, a sequence of SDT code blocks may be newly defined and utilized to carry the first sequence number. In one example, when the SDT code block sequence is used to carry the first sequence number, the first FlexE code block stream may further include second indication information, where the second indication information is used to indicate that the SDT code block sequence carries the first sequence number. The embodiment of the application does not specifically limit the carrying position of the second indication information in the first FlexE code block stream. In one example, a certain Idle code block in the first FlexE code block stream may be replaced with the second indication information. In yet another example, to avoid excessive spreading of the first FlexE code block stream, the second indication information may be carried by a T code block of the SDT code block sequence. As an example, the T-code block may include a control block for carrying the second indication information. In a specific example, a field may be defined in the control block to carry the second indication information, and embodiments of the present application do not specifically limit a field in the control block to carry the second indication information, and as an example, the field may be a magic word field.
Regarding the SDT code block sequence, the structure of the SDT code block sequence may be understood with reference to fig. 4c, and fig. 4c is a schematic structural diagram of the SDT code block sequence according to an embodiment of the present application.
As shown in fig. 4c, the SDT code block includes an S code block including a block type field and a preamble field, a D code block, and a T code block. The D-code block includes a sequence number field for carrying a first sequence number, and optionally, the D-code block may further include a check word field for carrying check information. The T code block may be any T code block including a control block, for example, a TO code block, a T1 code block, a T2 code block, a T3 code block, a T4 code block, a T5 code block, or a T6 code block, and fig. 4c illustrates a T0 code block as an example. The control block includes a Magic Num field, which is used to carry the second instruction information. For example, the value of the Magic Num field may take a special value for representing the second indication information.
In one example, the first FlexE code block stream may include a preamble that is used to carry the first sequence number. As can be seen from the description of fig. 4c, the preamble is part of an S code block in the SDT code block sequence. For the preamble, a description is not repeated here. As an example, a new preamble may be newly defined and used to carry the first sequence number. In one example, when the preamble is used to carry the first sequence number, third indication information may be further included in the first FlexE code block stream, where the third indication information is used to indicate that the first sequence number is carried in the SDT code block sequence. The embodiment of the application does not specifically limit the carrying position of the third indication information in the first FlexE code block stream. In one example, a certain Idle code block in the first FlexE code block stream may be replaced with the third indication information. In yet another example, to avoid excessive spreading of the first FlexE code block stream, the third indication information may also be carried by the S code block to which the preamble belongs. For example, the first sequence number may be carried with a part of a field of a preamble included in the S-code block, and the third indication information may be carried with another part of a field of a preamble included in the S-code block.
In one example, when the first FlexE code block stream is used to carry small particle traffic, the first FlexE code block stream includes fgBU OH and fgBU payloads. For this case, in one example, the fgBU OH may include the first sequence number. As mentioned above, the code blocks included in the first FlexE code block stream belong to the first client. In the scenario where the first serial number is carried through fgBU OH, the fgBU OH may further include an fg-client identifier. The fg-client identification may be an identification of the first fg-client. The fg-client identifier may enable the receiving end to buffer, based on the fg-client, code block streams received from the plurality FlexE of channels and corresponding to the fg-client identifier. In one example, fg-client may also be referred to as sub-client, which may be used interchangeably.
In one example, when the fgBU OH is used to carry the first sequence number, a fourth indication information may be further included in the first FlexE code block stream, where the fourth indication information is used to indicate that the first sequence number is carried in the fgBU OH. In one example, the fourth indication information may be carried by an identification field in the fgBU OH.
With respect to fgBU OH, the structure of fgBU OH can be understood with reference to fig. 4d, and fig. 4d is a schematic diagram of a structure of fgBU OH according to an embodiment of the present application. As shown in fig. 4d, the fgBU OH may include a reserved field, a multiframe indication (multiFrame indication, MFI) field, a flags field, and a sequence number field. Wherein:
And flags field for carrying the fourth indication information, and sequence number field for carrying the first sequence number. Of course, the fgBU OH may also include other fields, such as a check word field that includes check information for carrying the fgBU OH, which are not described in detail herein.
In addition, the MFI field is used to indicate the number of each fgBU in the multiframe, and in the scenario that 20 fgBU form one multiframe, the MFI field has a value ranging from 0 to 19, for the first fgBU of the multiframe, the MFI field has a value of 0, for the second FGU base frame of the multiframe, the MFI field has a value of 1, and so on, for the last fgBU of the multiframe, the MFI field has a value of 19.
S103: the second communication device receives the first FlexE code block stream sent by the first communication device through the first FlexE channels.
S104: the second communication device receives the first FlexE code block stream sent by the first communication device through the second FlexE channels.
The first communication device sends a first FlexE code block stream to the second communication device through a first FlexE channel and sends the first FlexE code block stream to the second communication device through a second FlexE channel. Correspondingly, the second communication device may receive the first FlexE code block stream sent by the first communication device through a first FlexE channel, and receive the first FlexE code block stream sent by the first communication device through a second FlexE channel.
As can be seen from the above description, with the solution provided by the embodiment of the present application, since the second communication device can receive the first FlexE code block stream from two FlexE channels, and the two FlexE channels have a low possibility of failure when transmitting the first FlexE code block stream, the second communication device can receive the first FlexE code block stream sent by the first communication device from at least one FlexE channel that is not failed. For example, upon failure of the first FlexE lane, a second communications device may receive the first FlexE code block stream from a second FlexE lane; the second communication device may receive the first FlexE code block stream from the first FlexE channel upon failure of the second FlexE channel. Therefore, the communication effect of almost zero packet loss is achieved, and the service quality provided for the service is improved. Because FlexE channels can realize service hard isolation, by adopting the scheme, the communication effect of almost zero packet loss can be achieved while the service hard isolation is realized.
In one example, the first communication device may add a sequence number to the code block stream corresponding to the first client at a certain period, for example, at a period of 20 ms. For this case, the first communication device may also perform the following steps A1-A3 after performing the above method 100.
Step A1: obtaining a second FlexE code block stream, where the second FlexE code block stream includes a second sequence number, the second sequence number identifies a sending sequence of the second FlexE code block stream, the first sequence number and the second sequence number are numbered according to a preset rule sequence, and code blocks included in the first FlexE code block stream and code blocks included in the second FlexE code block stream belong to the same client.
Step A2: and sending the second FlexE code block stream to the second communication device through the first FlexE channels.
Step A3: and sending the second FlexE code block stream to the second communication device through the second FlexE channels.
The embodiment of the application is not particularly limited to numbering according to the preset rule sequence, and the preset rule can be determined according to actual conditions. For example, the numbering according to the preset rule sequence may be numbering according to a fixed step sequence. The embodiment of the application is not particularly limited to the fixed step length, and the fixed step length may be 1. Then the second sequence number is 2 assuming the first sequence number is 1. For another example, the serial numbers according to the preset rule sequence may be serial numbers according to a variable step sequence, which is not specifically limited in the embodiment of the present application.
With respect to the specific implementation of steps A1-A3, reference may be made to the specific implementation of steps S101-S102 in method 100 above, which is not repeated here.
In one example, to promote better quality of service, after the second communication device receives the first FlexE code block stream over two FlexE channels, further operations may be determined based on the time sequence of receiving the first FlexE code block stream from two FlexE channels. As an example, the second communication apparatus may forward the code block stream received by the FlexE channels corresponding to the earlier reception time, and not forward the code block stream received by the FlexE channels corresponding to the later reception time. To achieve this, in one specific example:
the second communication device may create a first buffer instance corresponding to the first FlexE channels, and buffer, by using the first buffer instance, code blocks included in the first FlexE code block stream received by the first FlexE channels to a first buffer unit. As a specific example, the second communication apparatus may buffer, after receiving the first sequence number, a code block stream belonging to the first client received after the first sequence number to the first buffer unit. Specifically, in the case that the first sequence number is carried by a container overhead, an O-code block, an SDT code stream, or a preamble, the second communication device may receive the first sequence number from a specific timeslot, determine a first client corresponding to the timeslot according to a timeslot mapping relationship, and further buffer the code block stream of the first client. In the scenario that the first serial number is carried by fg-BUOH, after the second communication device receives the first serial number, fg-client identifiers carried in the fg-BUOH can be further extracted, sub-slots for carrying code block streams corresponding to the fg-client identifiers are determined according to a time slot mapping relationship, and further, the code block stream buffer values corresponding to the sub-slots for carrying the code block streams corresponding to the fg-client identifiers are cached in the first buffer unit.
Similarly, the second communication device may create a second buffer instance corresponding to the second FlexE channel, through which the code blocks included in the first FlexE code block stream received through the second FlexE channel are buffered to a second buffer unit. For the specific implementation of "the second communication device buffers the code blocks included in the first FlexE code block stream received through the second FlexE channel into the second buffer unit", reference may be made to the specific implementation of "the second communication device buffers the code blocks included in the first FlexE code block stream received through the first FlexE channel into the first buffer unit" which is not repeated herein.
In one example, the second communication device may further receive the aforementioned second FlexE code block stream through the first FlexE channels, and buffer the code blocks included in the second FlexE code block stream to the first buffer unit. Further, the code blocks included in the first FlexE code block stream and the code blocks included in the second FlexE code block stream stored in the first buffer unit are extracted to execute a forwarding processing operation.
As described above, the second communication apparatus may buffer, after receiving the first sequence number, the code block stream belonging to the first client received after the first sequence number to the first buffer unit. In one example, if the second communication device receives the second sequence number, the first buffer unit includes a code block stream belonging to the first client received between the first sequence number and the second sequence number. For this case, the second communication apparatus may extract the code block stream belonging to the first client received between the first sequence number and the second sequence number to perform a forwarding processing operation. The forwarding processing operations referred to herein may comprise forwarding and/or processing operations, and the forwarding operations referred to herein may be forwarding the stream of code blocks to a downstream node, and the processing operations referred to herein may be recovering the client frame, for example. In one example, the forwarding processing operations may be performed by a shim module of the second communication device.
In one example, the second communication apparatus may clear the code block stream belonging to the first client received between the first sequence number and the second sequence number from the first buffer unit after performing a forwarding processing operation on the code block stream belonging to the first client received between the first sequence number and the second sequence number, and further buffer the code block stream belonging to the first client received after the second sequence number to the first buffer unit.
In one example, the second communication device may further clear the code blocks belonging to the first FlexE code block stream stored in the second buffer unit, for this case, since the second sequence number has been received from the first FlexE channels. In this scenario, even though the second communication device has not received the second sequence number from the second FlexE channel, the other code block streams belonging to the first client are not cached in the second cache unit until the second communication device receives the second sequence number from the second FlexE channel, so as to avoid repeatedly caching the code block streams that have been received through the first FlexE channel and performing the forwarding processing operation. In one example, the second communication device may continue to buffer the stream of code blocks belonging to the first client received after receiving the next sequence number until the next sequence number is received through the second FlexE channels.
In yet another example, the second communication device receives a third FlexE code block stream over the first FlexE channel after receiving the first FlexE code block stream over the first FlexE channel, wherein the third FlexE code block stream includes a third sequence number. After receiving the first FlexE code block stream through the second FlexE channel, the second communication device receives the second FlexE code block stream through the second FlexE channel, where the second FlexE code block stream includes a second serial number, the first serial number, the second serial number, and the third serial number are numbered according to a preset rule, and code blocks included in the first FlexE code block stream, the second FlexE code block stream, and the third FlexE code block stream belong to the same client. For this case, the second communication apparatus may buffer the code blocks included in the third FlexE code block stream to the first buffer unit, and store the code blocks included in the second FlexE code block stream to the second buffer unit. Specifically, the second communication device may first clear the first buffering unit, and further buffer, to the first buffering unit, a code block stream belonging to the first client received after the third sequence number is received. The second communication device may store code blocks included in a second FlexE code block stream received within a period of time after receiving the first sequence number and before receiving the second sequence number to the second buffer unit. Further, the second communication apparatus may extract the code blocks stored in the second buffer unit to perform a forwarding processing operation.
In this way, even if a packet loss occurs in the first FlexE channels, for example, the second communication device does not receive the second FlexE code block stream carrying the second sequence number through the first FlexE channel before receiving the third FlexE code block stream through the first FlexE channel. The second communication device may also receive the second FlexE code block stream through a second FlexE channel, so as to avoid packet loss.
In addition, in this way, the service transmission delay can be reduced as much as possible, for example, before the second communication device receives the third FlexE code block stream through the first FlexE channels, the second communication device receives the second FlexE code block stream carrying the second sequence number through the first FlexE channels. But the time when the second communication device receives the second serial number through the first FlexE channel is later than the time when the second communication device receives the second serial number through the second FlexE channel. For this case, the second communication apparatus may perform a forwarding processing operation on the second FlexE code block stream received through the second FlexE channels.
In the embodiment of the present application, the first buffer unit and the second buffer unit may correspond to different memories, for example, the first buffer unit is a buffer unit in the first memory, and the second buffer unit is a buffer unit in the second memory. The first buffer unit and the second buffer unit may also correspond to the same memory, and in this case, the first buffer unit and the second buffer unit may correspond to two non-overlapping memory spaces in the same memory.
In order to facilitate understanding of the present solution, a solution provided by an embodiment of the present application will now be described with reference to fig. 5.
In the scenario shown in fig. 5, the PE1 may be configured to sequence numbers for the code block stream corresponding to the first client according to the period, where the manner in which the PE1 sequence numbers for the code block stream corresponding to the first client is: numbered sequentially with a fixed step size of 1. As shown in fig. 5, the code block stream corresponding to the first client includes 3 code block streams, namely, code block stream 510, code block stream 520 and code block stream 530. In one example, the sequence number of the code block stream is located in the code block stream (e.g., may be carried by an O-code, a preamble, etc.), and PE1 sends the 3 code block streams to PE2 via FlexE channel-1 and FlexE channel-2, respectively.
After receiving the serial number 0 through FlexE channel-1, the PE2 creates a corresponding cache instance, and caches the code block belonging to the first client received from FlexE channel-1 after receiving the serial number 0 into the cache unit 1.
After receiving the serial number 0 through FlexE channel-2, the PE2 creates a corresponding cache instance, and caches the code block belonging to the first client received from FlexE channel-2 after receiving the serial number 0 into the cache unit 2.
Assuming that PE2 first receives sequence number 1 through FlexE channel-1, at this point, the PE2 may clear the cache unit 2 and extract the code blocks in cache unit 1 to perform forwarding processing operations. After extracting the code blocks in the cache unit 1, the cache unit 1 is cleared. It will be appreciated that, when PE2 receives sequence number 1 via FlexE channel-1, the code blocks buffered in buffer unit 1 include: code block 511 and code block 521.
In addition, PE2 continues to cache the code block received from FlexE channel-1, belonging to the first client, after receiving the sequence number 1, to cache unit 1.
After PE2 clears the code block in cache unit 2, no data is cached in cache unit 2 until sequence number 1 is received via FlexE channel-2. After PE2 receives sequence number 1 through FlexE channel-2, PE2 continues to cache the code block received from FlexE channel-2 after receiving sequence number 1, belonging to the first client, to cache unit 2.
Assuming that PE2 first receives sequence number 2 through FlexE channel-2, at this point, the PE2 may clear the cache unit 1 and extract the code blocks in cache unit 2 to perform forwarding processing operations. After extracting the code blocks in the cache unit 2, the cache unit 2 is cleared. It will be appreciated that, when PE2 receives sequence number 2 via FlexE channel-2, the code blocks buffered in buffer unit 2 include: code block 522 and code block 531.
In fig. 5, taking an example that the code block stream corresponding to the first client includes 3 code block streams as an illustration, the number of the code block streams corresponding to the first client may be far greater than 3, and when the number of the code block streams corresponding to the first client is greater than 3, the operation performed by the PE2 may be analogized with the example shown in fig. 5, which is not described in detail here.
In fig. 5, PE1 may correspond to the first communication device in the above method embodiment; PE2 may correspond to the second communication device in the above method embodiment; flexE channel-1 may correspond to the first FlexE channel in the above method embodiment; flexE channel-2 may correspond to the second FlexE channel in the method embodiment above; the cache unit 1 may correspond to the first cache unit in the above method embodiment; the cache unit 2 may correspond to the second cache unit in the above method embodiment.
The embodiment of the application also provides a communication device, and referring to fig. 6, the fig. is a schematic structural diagram of the communication device provided by the embodiment of the application. The communication device 600 shown in fig. 6 may include a transceiver unit 601 and a processing unit 602. The transceiver unit 601 is configured to perform operations related to receiving and/or transmitting; the processing unit 602 is configured to perform operations other than receiving and/or transmitting related operations. In a specific implementation, the transceiver 601 may include a receiving unit and/or a transmitting unit, where the receiving unit is configured to perform a reception-related operation, and the transmitting unit is configured to perform a transmission-related operation.
In a specific example, when the communication apparatus 600 corresponds to the first communication apparatus mentioned in the above embodiment, the transceiving unit 601 may include a transmitting unit configured to transmit a first flexible ethernet FlexE code block stream to the second communication apparatus through a first FlexE channel between the first communication apparatus and the second communication apparatus, the first FlexE code block stream including a first sequence number identifying a transmission order of the first FlexE code block stream; and transmitting the first FlexE code block stream to the second communication device through a second FlexE channel between the first communication device and the second communication device.
In one possible implementation, the first FlexE channels and the second FlexE channels are both FlexE small particle channels.
In one possible implementation, the first FlexE channels and the second FlexE channels are both FlexE large particle channels.
In one possible implementation manner, the first FlexE code block stream is a FlexE code block stream obtained by encoding a container, where the container includes a container overhead and a container payload, the container overhead includes the first sequence number, and the container payload carries service data.
In a possible implementation manner, the container overhead further includes verification information, where the verification information is used to verify the container overhead.
In one possible implementation, the first FlexE code block stream carries small-particle traffic, the first FlexE code block stream includes fine-grained base unit overheads fgBU OH and fgBU payloads, and the fgBU payload includes the container.
In one possible implementation, the first FlexE code block stream includes an O code block, the O code block including the first sequence number.
In one possible implementation manner, the first FlexE code block stream further includes first indication information, where the first indication information is used to indicate that the O code block includes the first sequence number.
In one possible implementation, the type field of the O-code block is used to carry the first indication information.
In one possible implementation, the first FlexE code block stream includes an SDT code block sequence consisting of one start S code block, at least one data D code block, and one end T code block, the SDT code block sequence including the first sequence number.
In a possible implementation manner, the SDT code block sequence further includes second indication information, where the second indication information is used to indicate that the SDT code block includes the first sequence number.
In a possible implementation manner, the T-code block includes a control block, where the control block is used to carry the second indication information.
In one possible implementation, the second indication information is a magic word.
In one possible implementation, the first FlexE code block stream includes a preamble, the preamble including the first sequence number.
In one possible implementation manner, the first FlexE code block flow includes third indication information, where the third indication information is used to indicate that the preamble includes the packet sequence number.
In one possible implementation, the first FlexE code block stream includes fgBU OH and fgBU payloads, the fgBU OH includes the first sequence number, and the fgBU OH further includes a fine-grained client fg-client identification.
In one possible implementation, the first FlexE code block stream carries fixed bit rate CBR traffic.
In one possible implementation, the first FlexE code block stream carries variable bit rate VBR traffic.
In one possible implementation, the apparatus 600 further includes: an obtaining unit, configured to obtain the first flexible ethernet FlexE code block stream; the processing unit 602 is configured to replicate the first FlexE code block stream to obtain a plurality of first FlexE code block streams, so as to send the plurality of first FlexE code block streams to the second communication device through a plurality of FlexE channels between the first communication device and the second communication device, where the plurality of FlexE channels include the first FlexE channel and the second FlexE channel.
In a possible implementation manner, the apparatus includes an obtaining unit further configured to: acquiring a second FlexE code block stream, wherein the second FlexE code block stream comprises a second sequence number, the second sequence number identifies the sending sequence of the second FlexE code block stream, the first sequence number and the second sequence number are numbered according to a preset rule sequence, and the code blocks included in the first FlexE code block stream and the code blocks included in the second FlexE code block stream belong to the same client; the sending unit is further configured to send the second FlexE code block stream to the second communication device through the first FlexE channel; and sending the second FlexE code block stream to the second communication device through the second FlexE channels.
In a specific example, when the communication apparatus 600 corresponds to the second communication apparatus mentioned in the above embodiment, the transceiving unit 601 may include a receiving unit for receiving a first FlexE code block stream transmitted by a first communication apparatus through a first FlexE channel between the first communication apparatus and the second communication apparatus, the first FlexE code block stream including a first sequence number identifying a transmission order of the first FlexE code block stream, and receiving the first FlexE code block stream transmitted by the first communication apparatus through a second FlexE channel between the first communication apparatus and the second communication apparatus.
In a possible implementation manner, the processing unit 602 is configured to buffer, to a first buffer unit, code blocks included in the first FlexE code block stream received through the first FlexE channel, and buffer, to a second buffer unit, code blocks included in the first FlexE code block stream received through the second FlexE channel.
In a possible implementation manner, the receiving unit is further configured to receive a second FlexE code block stream through the first FlexE channel, where the second FlexE code block stream includes a second sequence number, the first sequence number and the second sequence number are numbered according to a preset rule sequence, and a code block included in the first FlexE code block stream and a code block included in the second FlexE code block stream belong to the same client; the device comprises a processing unit and a first buffer unit, wherein the processing unit is further used for buffering the code blocks included in the second FlexE code block stream to the first buffer unit; and extracting the code blocks included in the first FlexE code block stream and the code blocks included in the second FlexE code block stream stored in the first buffer unit to execute forwarding processing operation.
In a possible implementation manner, the processing unit 602 is further configured to: and clearing the code blocks belonging to the first FlexE code block stream stored in the second cache unit.
In a possible implementation manner, the receiving unit is further configured to receive a third FlexE code block stream through the first FlexE channel, where the third FlexE code block stream includes a third sequence number; receiving a second FlexE code block stream through the second FlexE channel, wherein the second FlexE code block stream comprises a second serial number, the first serial number, the second serial number and the third serial number are numbered according to a preset rule sequence, and code blocks included in the first FlexE code block stream, the second FlexE code block stream and the third FlexE code block stream belong to the same client; the processing unit is further configured to cache a code block included in the third FlexE code block stream to the first cache unit; storing code blocks included in the second FlexE code block stream to the second buffer unit; and extracting the code blocks stored by the second buffer unit to execute forwarding processing operation.
In one possible implementation, the first communication device does not receive the second FlexE code block stream carrying the second sequence number over the first FlexE channel before receiving the third FlexE code block stream over the first FlexE channel.
In one possible implementation, the first FlexE channels and the second FlexE channels are both FlexE small particle channels.
In one possible implementation, the first FlexE channels and the second FlexE channels are both FlexE large particle channels.
In one possible implementation manner, the first FlexE code block stream is a FlexE code block stream obtained by encoding a container, where the container includes a container overhead and a container payload, the container overhead includes the first sequence number, and the container payload carries service data.
In a possible implementation manner, the container overhead further includes verification information, where the verification information is used to verify the container overhead.
In one possible implementation, the first FlexE code block stream carries small-particle traffic, the first FlexE code block stream includes fine-grained base unit overheads fgBU OH and fgBU payloads, and the fgBU payload includes the container.
In one possible implementation, the first FlexE code block stream includes an O code block, the O code block including the first sequence number.
In one possible implementation manner, the first FlexE code block stream further includes first indication information, where the first indication information is used to indicate that the O code block includes the first sequence number.
In one possible implementation, the type field of the O-code block is used to carry the first indication information.
In one possible implementation, the first FlexE code block stream includes an SDT code block sequence consisting of one start S code block, at least one data D code block, and one end T code block, the SDT code block sequence including the first sequence number.
In a possible implementation manner, the SDT code block sequence further includes second indication information, where the second indication information is used to indicate that the SDT code block includes the first sequence number.
In a possible implementation manner, the T-code block includes a control block, where the control block is used to carry the second indication information.
In one possible implementation, the second indication information is a magic word.
In one possible implementation, the first FlexE code block stream includes a preamble, the preamble including the first sequence number.
In one possible implementation manner, the first FlexE code block flow includes third indication information, where the third indication information is used to indicate that the preamble includes the packet sequence number.
In one possible implementation, the first FlexE code block stream includes fgBU OH and fgBU payloads, the fgBU OH includes the first sequence number, and the fgBU OH further includes a fine-grained client fg-client identification.
In one possible implementation, the first FlexE code block stream carries fixed bit rate CBR traffic.
In one possible implementation, the first FlexE code block stream carries variable bit rate VBR traffic.
In addition, the embodiment of the application further provides a communication device 700, as shown in fig. 7, and fig. 7 is a schematic structural diagram of the communication device according to the embodiment of the application. The communication device 700 includes a communication interface 701 and a processor 702 connected to the communication interface 701. The communication device 700 may be used to perform the method 100 in the above embodiments.
In one example, the communication device 700 may perform the method 100 of the above embodiment, and when the communication device 700 is used to perform the method 100 of the above embodiment, the communication device 700 corresponds to the first communication device of the method 100. The communication interface 701 is used to perform the transceiving operations performed by the first communication device in the method 100. The processor 702 is configured to perform operations other than the transceiving operations performed by the first communication device in the method 100. For example: the communication interface 701 is configured to send a first flexible ethernet FlexE code block stream to a second communication device through a first FlexE channel between the first communication device and the second communication device, where the first FlexE code block stream includes a first sequence number, the first sequence number identifies a sending order of the first FlexE code block stream, and send the first FlexE code block stream to the second communication device through a second FlexE channel between the first communication device and the second communication device. As an example, the processor 702 is configured to replicate the first FlexE code block stream to obtain a plurality of the first FlexE code block streams.
In one example, the communication device 700 may perform the method 100 of the above embodiment, and when the communication device 700 is used to perform the method 100 of the above embodiment, the communication device 700 corresponds to a second communication device of the method 100. The communication interface 701 is used to perform the transceiving operations performed by the second communication device in the method 100. The processor 702 is configured to perform operations other than the transceiving operations performed by the second communication device in the method 100. For example: the communication interface 701 is configured to receive the first FlexE code block stream sent by the first communication device through the first FlexE channel, and receive the first FlexE code block stream sent by the first communication device through the second FlexE channel. As an example, the processor 702 is configured to buffer, in a first buffer unit, code blocks included in the first FlexE code block stream received through the first FlexE channel, and buffer, in a second buffer unit, code blocks included in the first FlexE code block stream received through the second FlexE channel.
The processor 702 may be, for example, a central processor (central processing unit, CPU), a network processor (network processor, NP) or a combination of CPU and NP. The processor may also be, for example, an application-specific integrated circuit (ASIC), a programmable logic device (programmable logic device, PLD), or a combination thereof. The PLD may be a complex programmable logic device (complex programmable logic device, CPLD), a field-programmable gate array (FPGA) GATE ARRAY, generic array logic (GENERIC ARRAY logic, GAL), or any combination thereof. The processor 702 may refer to one processor or may comprise multiple processors.
In addition, the embodiment of the application further provides a communication device 800, as shown in fig. 8, and fig. 8 is a schematic structural diagram of the communication device according to the embodiment of the application. The communication device 800 may be used to perform the method 100 in the above embodiments.
As shown in fig. 8, communication device 800 may include a processor 810 and a transceiver 830. In a specific implementation, the communications apparatus can also include a memory 820 coupled to the processor 810. The transceiver 830 may be, for example, a communication interface, an optical module, etc. The processor 810 may be, for example, a central processing unit (central processing unit, CPU), a network processor (network processor, NP) or a combination of CPU and NP. The processor may also be, for example, an application-specific integrated circuit (ASIC), a programmable logic device (programmable logic device, PLD), or a combination thereof. The PLD may be a complex programmable logic device (complex programmable logic device, CPLD), a field-programmable gate array (FPGA) GATE ARRAY, generic array logic (GENERIC ARRAY logic, GAL), or any combination thereof. Processor 810 may refer to one processor or may include multiple processors. Memory 820 may include volatile memory (English) such as random-access memory (RAM); the memory may also include a nonvolatile memory (English: non-volatile memory), such as read-only memory (ROM), flash memory (English: flash memory), hard disk (HARD DISK DRIVE, HDD) or solid state disk (solid-state disk) (SSD-STATE DRIVE); memory 820 may also include a combination of the above types of memory. The memory 820 may refer to one memory or may include a plurality of memories. In one embodiment, memory 820 has stored therein computer readable instructions comprising a plurality of software modules, such as a transmit module 821, a process module 822, and a receive module 823. The processor 810, upon execution of the various software modules, may perform the corresponding operations as directed by the various software modules. In this embodiment, the operations performed by one software module actually refer to operations performed by the processor 810 according to instructions of the software module.
In one example, the communication device 800 may perform the method 100 of the above embodiment, and when the communication device 800 is used to perform the method 100 of the above embodiment, the communication device 800 corresponds to the first communication device of the method 100. Transceiver 830 is configured to perform the transceiving operations performed by the first communication device in method 100. The processor 810 is configured to perform operations performed by the first communication device in the method 100 other than the transceiving operations. For example: the transceiver 830 is configured to transmit a first flexible ethernet FlexE code block stream to a second communication device through a first FlexE channel between the first communication device and the second communication device, where the first FlexE code block stream includes a first sequence number, the first sequence number identifies a transmission order of the first FlexE code block stream, and transmit the first FlexE code block stream to the second communication device through a second FlexE channel between the first communication device and the second communication device. As an example, the processor 810 is configured to replicate the first FlexE code block stream to obtain a plurality of the first FlexE code block streams.
In one example, the communication device 800 may perform the method 100 of the above embodiment, and when the communication device 800 is used to perform the method 100 of the above embodiment, the communication device 800 corresponds to a second communication device of the method 100. Transceiver 830 is configured to perform the transceiving operations performed by the second communication device in method 100. The processor 810 is configured to perform operations performed by the second communication device in the method 100 other than the transceiving operations. For example: the transceiver 830 is configured to receive the first FlexE code block stream sent by the first communication device through the first FlexE channel, and receive the first FlexE code block stream sent by the first communication device through the second FlexE channel. As an example, the processor 810 is configured to buffer the code blocks included in the first FlexE code block stream received through the first FlexE channel to a first buffer unit, and buffer the code blocks included in the first FlexE code block stream received through the second FlexE channel to a second buffer unit.
The application also provides a computer readable storage medium having instructions stored therein which, when run on a computer, cause the computer to perform any one or more of the operations of the methods described in the previous embodiments (e.g., method 100).
The application also provides a computer program product comprising a computer program which, when run on a computer, causes the computer to perform any one or more of the operations of the methods described in the previous embodiments (e.g. method 100).
The application also provides a communication system comprising the first communication device and the second communication device.
The terms "first," "second," "third," "fourth" and the like in the description and in the claims and in the above drawings, if any, are used for distinguishing between similar objects and not necessarily for describing a particular sequential or chronological order. It is to be understood that the data so used may be interchanged where appropriate such that the embodiments described herein may be implemented in other sequences than those illustrated or otherwise described herein. Furthermore, the terms "comprises," "comprising," and "having," and any variations thereof, are intended to cover a non-exclusive inclusion, such that a process, method, system, article, or apparatus that comprises a list of steps or elements is not necessarily limited to those steps or elements expressly listed but may include other steps or elements not expressly listed or inherent to such process, method, article, or apparatus.
It will be clear to those skilled in the art that, for convenience and brevity of description, specific working procedures of the above-described systems, apparatuses and units may refer to corresponding procedures in the foregoing method embodiments, which are not repeated herein.
In the several embodiments provided in the present application, it should be understood that the disclosed systems, devices, and methods may be implemented in other manners. For example, the above-described apparatus embodiments are merely illustrative, e.g., the division of units is merely a logical service division, and there may be additional divisions in actual implementation, e.g., multiple units or components may be combined or integrated into another system, or some features may be omitted, or not performed. Alternatively, the coupling or direct coupling or communication connection shown or discussed with each other may be an indirect coupling or communication connection via some interfaces, devices or units, which may be in electrical, mechanical or other form.
The units described as separate units may or may not be physically separate, and units shown as units may or may not be physical units, may be located in one place, or may be distributed over a plurality of network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
In addition, each service unit in the embodiments of the present application may be integrated in one processing unit, or each unit may exist alone physically, or two or more units may be integrated in one unit. The integrated units may be implemented in hardware or in software business units.
The integrated units, if implemented in the form of software business units and sold or used as stand-alone products, may be stored in a computer readable storage medium. Based on such understanding, the technical solution of the present application may be embodied in essence or a part contributing to the prior art or all or part of the technical solution in the form of a software product stored in a storage medium, including several instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the methods of the embodiments of the present application. And the aforementioned storage medium includes: a usb disk, a removable hard disk, a Read-Only Memory (ROM), a random access Memory (RAM, random Access Memory), a magnetic disk, or an optical disk, or other various media capable of storing program codes.
Those skilled in the art will appreciate that in one or more of the examples described above, the services described herein may be implemented in hardware, software, firmware, or any combination thereof. When implemented in software, the services may be stored in a computer-readable medium or transmitted as one or more instructions or code on a computer-readable medium. Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A storage media may be any available media that can be accessed by a general purpose or special purpose computer.
The objects, technical solutions and advantageous effects of the present invention have been described in further detail in the above embodiments, and it should be understood that the above are only embodiments of the present invention.
The above embodiments are only for illustrating the technical solution of the present application, and not for limiting the same; although the application has been described in detail with reference to the foregoing embodiments, it will be understood by those of ordinary skill in the art that: the technical scheme described in the foregoing embodiments can be modified or some technical features thereof can be replaced by equivalents; such modifications and substitutions do not depart from the spirit of the application.
Claims (47)
1. A communication method applied to a first communication device, the method comprising:
Transmitting a first flexible ethernet FlexE code block stream to the second communication device over a first FlexE channel between the first communication device and the second communication device, the first FlexE code block stream including a first sequence number identifying a transmission order of the first FlexE code block stream;
and transmitting the first FlexE code block stream to the second communication device through a second FlexE channel between the first communication device and the second communication device.
2. The method of claim 1, wherein the first FlexE channels and the second FlexE channels are each FlexE small particle channels.
3. The method of claim 1, wherein the first FlexE channels and the second FlexE channels are each FlexE large particle channels.
4. A method according to any one of claims 1-3, wherein the first FlexE code block stream is a FlexE code block stream obtained by encoding a container, the container comprising a container overhead and a container payload, the container overhead comprising the first sequence number, the container payload carrying traffic data.
5. The method of claim 4, wherein the container overhead further comprises verification information, wherein the verification information is used to verify the container overhead.
6. The method of claim 4 or 5, wherein the first FlexE code block stream carries small particle traffic, the first FlexE code block stream includes fine-grained base unit overhead fgBU OH and fgBU payloads, and the fgBU payload includes the container.
7. A method according to any of claims 1-3, wherein the first FlexE code block stream comprises O code blocks, the O code blocks comprising the first sequence number.
8. The method of claim 7, wherein the first FlexE code block stream further comprises first indication information indicating that the O code block comprises the first sequence number.
9. The method of claim 8, wherein a type field of the O-code block is used to carry the first indication information.
10. A method according to any of claims 1-3, characterized in that said first FlexE code block stream comprises an SDT code block sequence consisting of a start S code block, at least one data D code block, and an end T code block, said SDT code block sequence comprising said first sequence number.
11. The method of claim 10 wherein the SDT code block sequence further comprises second indication information indicating that the SDT code block comprises the first sequence number.
12. The method of claim 11, wherein the T-code block comprises a control block for carrying the second indication information.
13. A method according to claim 11 or 12, wherein the second indication information is a magic word.
14. A method according to any of claims 1-3, wherein the first FlexE code block stream comprises a preamble, the preamble comprising the first sequence number.
15. The method of claim 14, wherein the first FlexE code block stream includes third indication information, the third indication information being used to indicate that the preamble includes the message sequence number.
16. The method of claim 2, wherein the first FlexE code block stream includes fgBU OH and fgBU payloads, wherein the fgBU OH includes the first sequence number, and wherein the fgBU OH further includes a fine-grained client fg-client identification.
17. The method according to any of claims 1-16, wherein the first FlexE code block stream carries fixed bit rate CBR traffic.
18. The method according to any of claims 1-16, wherein the first FlexE code block stream carries variable bit rate VBR traffic.
19. The method according to any one of claims 1-18, further comprising:
acquiring the first flexible Ethernet FlexE code block stream;
Copying the first FlexE code block stream results in a plurality of the first FlexE code block streams so as to respectively transmit the plurality of first FlexE code block streams to the second communication device through a plurality of FlexE channels between the first communication device and the second communication device, the plurality of FlexE channels including the first FlexE channel and the second FlexE channel.
20. The method according to any one of claims 1-19, further comprising:
Acquiring a second FlexE code block stream, wherein the second FlexE code block stream comprises a second sequence number, the second sequence number identifies the sending sequence of the second FlexE code block stream, the first sequence number and the second sequence number are numbered according to a preset rule sequence, and the code blocks included in the first FlexE code block stream and the code blocks included in the second FlexE code block stream belong to the same client;
transmitting the second FlexE code block stream to the second communication device through the first FlexE channels;
and sending the second FlexE code block stream to the second communication device through the second FlexE channels.
21. A communication method applied to a second communication device, the method comprising:
Receiving a first FlexE code block stream sent by a first communication device through a first FlexE channel between the first communication device and the second communication device, wherein the first FlexE code block stream comprises a first serial number, and the first serial number identifies the sending sequence of the first FlexE code block stream;
The first FlexE code block stream transmitted by the first communication device is received through a second FlexE channel between the first communication device and the second communication device.
22. The method of claim 21, wherein the method further comprises:
Caching code blocks included in the first FlexE code block stream received through the first FlexE channel into a first caching unit;
And caching the code blocks included in the first FlexE code block stream received through the second FlexE channels into a second caching unit.
23. The method according to claim 21 or 22, characterized in that the method further comprises:
Receiving a second FlexE code block stream through the first FlexE channel, wherein the second FlexE code block stream comprises a second serial number, the first serial number and the second serial number are numbered according to a preset rule sequence, and the code blocks included in the first FlexE code block stream and the code blocks included in the second FlexE code block stream belong to the same client;
Caching code blocks included in the second FlexE code block stream into the first caching unit;
And extracting the code blocks included in the first FlexE code block stream and the code blocks included in the second FlexE code block stream stored in the first buffer unit to execute forwarding processing operation.
24. The method of claim 23, wherein the method further comprises:
And clearing the code blocks belonging to the first FlexE code block stream stored in the second cache unit.
25. The method of claim 22, wherein the method further comprises:
receiving a third FlexE code block stream through the first FlexE channel, wherein the third FlexE code block stream includes a third sequence number; receiving a second FlexE code block stream through the second FlexE channel, wherein the second FlexE code block stream comprises a second serial number, the first serial number, the second serial number and the third serial number are numbered according to a preset rule sequence, and code blocks included in the first FlexE code block stream, the second FlexE code block stream and the third FlexE code block stream belong to the same client;
caching code blocks included in the third FlexE code block stream into the first caching unit;
storing code blocks included in the second FlexE code block stream to the second buffer unit;
And extracting the code blocks stored by the second buffer unit to execute forwarding processing operation.
26. The method of claim 25, wherein the first communication device does not receive the second FlexE code block stream carrying the second sequence number over the first FlexE channel before receiving the third FlexE code block stream over the first FlexE channel.
27. The method of claim 21, wherein the first FlexE channels and the second FlexE channels are each FlexE small particle channels.
28. The method of claim 21, wherein the first FlexE channels and the second FlexE channels are each FlexE large particle channels.
29. The method according to any of claims 21-28, wherein the first FlexE code block stream is a FlexE code block stream obtained by encoding a container, the container comprising a container overhead and a container payload, the container overhead comprising the first sequence number, the container payload carrying traffic data.
30. The method of claim 29, wherein the container overhead further comprises verification information, wherein the verification information is used to verify the container overhead.
31. The method of claim 29 or 30, wherein the first FlexE code block stream carries small particle traffic, the first FlexE code block stream includes fine-grained base unit overhead fgBU OH and fgBU payloads, and the fgBU payload includes the container.
32. The method of any of claims 21-28, wherein the first FlexE code block stream comprises O code blocks, the O code blocks comprising the first sequence number.
33. The method of claim 32, wherein the first FlexE code block stream further comprises first indication information indicating that the O code block comprises the first sequence number.
34. The method of claim 33, wherein a type field of the O-code block is used to carry the first indication information.
35. The method of any of claims 21-28, wherein the first FlexE code block stream includes an SDT code block sequence consisting of a start S code block, at least one data D code block, and an end T code block, the SDT code block sequence including the first sequence number.
36. The method of claim 35 wherein the SDT code block sequence further comprises second indicating information indicating that the SDT code block comprises the first sequence number.
37. The method of claim 36, wherein the T-code block comprises a control block for carrying the second indication information.
38. A method according to claim 36 or 37, wherein the second indication information is a magic word.
39. The method of any of claims 21-28, wherein the first FlexE code block stream includes a preamble, the preamble including the first sequence number.
40. The method of claim 39, wherein the first FlexE code block stream includes third indication information, the third indication information being used to indicate that the preamble includes the message sequence number.
41. The method of claim 27, wherein the first FlexE code block stream includes fgBU OH and fgBU payloads, wherein the fgBU OH includes the first sequence number, and wherein the fgBU OH further includes a fine-grained client fg-client identification.
42. The method of any of claims 21-41, wherein the first FlexE code block stream carries fixed bit rate CBR traffic.
43. The method of any of claims 21-41, wherein the first FlexE code block stream carries variable bit rate VBR traffic.
44. A first communication device, the device comprising:
a transceiver unit and a processing unit;
The transceiver unit for performing the receiving and/or transmitting operations performed by the first communication device according to any one of claims 1-20;
The processing unit is configured to perform operations other than the receiving and/or transmitting operations performed by the first communication device as claimed in any of claims 1-20.
45. A second communication device, the device comprising:
a transceiver unit and a processing unit;
The transceiver unit for performing the receiving and/or transmitting operations performed by the second communication device according to any one of claims 21-43;
the processing unit is configured to perform operations other than the receiving and/or transmitting operations performed by the second communication device as claimed in any of claims 21-43.
46. A communication device, comprising: a processor and a memory;
The memory is used for storing instructions;
The processor configured to execute the instructions to cause the communication device to perform the method of any one of claims 1-43.
47. A computer readable storage medium comprising instructions which, when run on a processor, implement the method of any one of claims 1-43.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211316947.4A CN117938738A (en) | 2022-10-26 | 2022-10-26 | Communication method and device |
PCT/CN2023/120938 WO2024087975A1 (en) | 2022-10-26 | 2023-09-25 | Communication method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211316947.4A CN117938738A (en) | 2022-10-26 | 2022-10-26 | Communication method and device |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117938738A true CN117938738A (en) | 2024-04-26 |
Family
ID=90759931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211316947.4A Pending CN117938738A (en) | 2022-10-26 | 2022-10-26 | Communication method and device |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117938738A (en) |
WO (1) | WO2024087975A1 (en) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IN2014DN06628A (en) * | 2012-01-17 | 2015-05-22 | Net Insight Intellectual Property Ab | |
CN108809901B (en) * | 2017-05-02 | 2021-05-04 | 华为技术有限公司 | Method, equipment and system for carrying service |
CN109150361B (en) * | 2017-06-16 | 2021-01-15 | 中国移动通信有限公司研究院 | Transmission network system, data exchange and transmission method, device and equipment |
CN109672560B (en) * | 2018-12-13 | 2021-11-12 | Ut斯达康通讯有限公司 | Flexible Ethernet management channel expansion method and device |
CN111092686A (en) * | 2019-11-28 | 2020-05-01 | 中兴通讯股份有限公司 | Data transmission method, device, terminal equipment and storage medium |
CN113708979A (en) * | 2021-09-29 | 2021-11-26 | 深圳市腾讯网域计算机网络有限公司 | Network acceleration method and device |
CN114978986B (en) * | 2022-05-13 | 2024-05-14 | 中国联合网络通信集团有限公司 | Data transmission method, device and storage medium |
-
2022
- 2022-10-26 CN CN202211316947.4A patent/CN117938738A/en active Pending
-
2023
- 2023-09-25 WO PCT/CN2023/120938 patent/WO2024087975A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024087975A1 (en) | 2024-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113508543B (en) | Method for adapting a constant bit rate client signal into a path layer of a telecommunication signal | |
CN111726244B (en) | OAM data transmission method and device for operation, administration and maintenance | |
CA2416082C (en) | Method of and system for the transfer of sonet traffic across a packet network | |
US6771663B1 (en) | Hybrid data transport scheme over optical networks | |
US8289962B2 (en) | Multi-component compatible data architecture | |
US8588209B2 (en) | Multi-network compatible data architecture | |
US7386008B2 (en) | Method and apparatus for converting data packets between a higher bandwidth network and a lower bandwidth network having multiple channels | |
JP2023535750A (en) | Data transmission method and device | |
US7006525B1 (en) | Hybrid data transport scheme over optical networks | |
KR20200103077A (en) | Data transmission method, communication device, and storage medium | |
WO2008128447A1 (en) | Aggregated link traffic protection | |
CN109995434B (en) | Data transmission method, communication equipment and storage medium | |
KR20190039300A (en) | Methods and apparatus for transmitting and receiving services, and network systems | |
US6731654B1 (en) | Communication system overhead channel | |
US20230412446A1 (en) | Method for Determining Transmission Slot and Related Apparatus | |
CN113595965A (en) | Service data processing, exchanging and extracting method and device, and computer readable medium | |
US6973084B1 (en) | Hybrid data transport scheme over optical networks | |
CN117938738A (en) | Communication method and device | |
JP7167345B2 (en) | DATA TRANSMISSION METHOD, COMMUNICATION DEVICE, AND STORAGE MEDIUM | |
CN116264587A (en) | Data transmission method and related device | |
CN115811388A (en) | Communication method, related device and storage medium | |
CN117579220A (en) | Fault code block processing method and device | |
CN113853014A (en) | Information transmission method, device, related equipment and storage medium | |
CN112953675A (en) | Data transmission method, communication equipment and storage medium | |
CN118677718A (en) | Data processing method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |