WO2024087975A1 - Communication method and apparatus - Google Patents
Communication method and apparatus Download PDFInfo
- Publication number
- WO2024087975A1 WO2024087975A1 PCT/CN2023/120938 CN2023120938W WO2024087975A1 WO 2024087975 A1 WO2024087975 A1 WO 2024087975A1 CN 2023120938 W CN2023120938 W CN 2023120938W WO 2024087975 A1 WO2024087975 A1 WO 2024087975A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- flexe
- code block
- block stream
- communication device
- sequence number
- Prior art date
Links
- 238000004891 communication Methods 0.000 title claims abstract description 349
- 238000000034 method Methods 0.000 title claims abstract description 132
- 238000012545 processing Methods 0.000 claims description 53
- 239000002245 particle Substances 0.000 claims description 38
- 230000015654 memory Effects 0.000 claims description 29
- 238000012795 verification Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 10
- 230000000694 effects Effects 0.000 abstract description 13
- 238000002955 isolation Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 23
- 238000005516 engineering process Methods 0.000 description 18
- 230000005540 biological transmission Effects 0.000 description 14
- 230000006399 behavior Effects 0.000 description 13
- 239000000284 extract Substances 0.000 description 12
- 239000008187 granular material Substances 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000013507 mapping Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 1
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 238000012966 insertion method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000004806 packaging method and process Methods 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
Definitions
- the present application relates to the field of communications, and in particular to a communication method and device.
- Flexible Ethernet (FlexE) technology has the advantage of flexible bandwidth allocation on demand, which can meet the needs of network scenarios such as mobile bearer, home broadband, and dedicated line access. Therefore, the application of FlexE technology will become more and more extensive.
- the embodiments of the present application provide a communication method and apparatus, which can achieve a communication effect of almost zero packet loss in a scenario where technology is used for communication between network devices, thereby providing a higher service quality for the business.
- an embodiment of the present application provides a communication method, which can be applied to a first communication device, and the first communication device and the second communication device can communicate using FlexE technology.
- 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 through the first FlexE channel, and send the first FlexE code block stream to the second communication device through the second FlexE channel.
- the first FlexE code block stream includes a first sequence number, and the first sequence number identifies the order in which the first FlexE code block stream is sent.
- the second communication device can receive the first FlexE code block stream from two FlexE channels, and the possibility that both FlexE channels fail when transmitting the first FlexE code block stream is low, the second communication device can at least receive the first FlexE code block stream sent by the first communication device from a non-faulty FlexE channel. For example, when the first FlexE channel fails, the second communication device can receive the first FlexE code block stream from the second FlexE channel; when the second FlexE channel fails, the second communication device can receive the first FlexE code block stream from the first FlexE channel. This achieves a communication effect with almost zero packet loss, improving the service quality provided to the business. Since the FlexE channel can achieve hard isolation of services, this solution can achieve a communication effect with almost zero packet loss while achieving hard isolation of services.
- the first communication device may obtain (for example, generate) the first FlexE code block stream, and send the FlexE code block stream to the second communication device through the first FlexE channel and the second FlexE channel respectively.
- the first FlexE code block stream may be copied to obtain multiple first FlexE code block streams.
- the first FlexE code block stream may be copied to obtain two first FlexE code block streams, one of which is sent to the second communication device through the first FlexE channel, and the other is sent to the second communication device through the second FlexE channel.
- a mirror image of the first FlexE code block stream can be obtained.
- both the first FlexE channel and the second FlexE channel are FlexE small-granularity channels.
- this solution can provide a quality of service with almost zero packet loss for small-granularity services transmitted between the first communication device and the second communication device.
- both the first FlexE channel and the second FlexE channel are FlexE large-granularity channels.
- this solution can provide a quality of service with almost zero packet loss for large-granularity services transmitted between the first communication device and the second communication device.
- the first FlexE code block stream may be a code block stream obtained after encoding the service stream.
- the service stream may be first encapsulated using a container to obtain a container, and then the container may be encoded to obtain the first FlexE code block stream.
- the first FlexE code block stream may include a FlexE overhead (OH) and a FlexE payload, and in this case, the container may be carried by the FlexE payload.
- a fine granularity basic unit (fgBU) can be obtained, and the fgBU can include fgBU OH and fgBU payload.
- the first FlexE code block stream may include fgBUOH and fgBU payload, and the container may be carried by the fgBU payload.
- the container overhead may include verification information, and the verification information is used to verify the container overhead, so as to ensure the legitimacy of the container overhead, and correspondingly, to ensure the accuracy of the first sequence number carried in the container overhead.
- the container overhead may include a check word field, and the check word field is used to carry the verification information.
- the first FlexE code block stream may include an O code block, and the O code block includes the first sequence number.
- the O code block includes the first sequence number.
- a new O code block may be defined, and the newly defined O code block may be 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.
- a certain Idle code block in the first FlexE code block stream may be replaced with the first indication information.
- the first indication information may be carried by the type field of the O code block.
- the first FlexE code block stream may include an SDT code block sequence consisting of a start (start, S) code block, at least one data (data, D) code block, and an end (terminate, T) code block, and the SDT code block sequence includes the first sequence number.
- SDT code block sequence consisting of a start (start, S) code block, at least one data (data, D) code block, and an end (terminate, T) code block
- the SDT code block sequence includes the first sequence number.
- a new SDT code block sequence may be defined, and the newly defined SDT code block sequence may be 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.
- a certain Idle code block in the first FlexE code block stream may be replaced with the second indication information.
- the second indication information may be carried by a T code block of the SDT code block sequence.
- the T code block in the SDT code block carrying the first sequence number may include a control block, and the control block is used to carry the second indication information.
- the SDT code block carries both the first sequence number and the second indication information.
- a field may be defined in the control block to carry the second indication information.
- the embodiment of the present application does not specifically limit the field in the control block used to carry the second indication information.
- the field may be a magic number (Magic Num) field.
- the first FlexE code block stream may include a preamble, which is used to carry the first sequence number.
- the preamble is a part of an S code block in an SDT code block sequence.
- a new preamble may be newly defined, and the newly defined preamble is used to carry the first sequence number.
- the first FlexE code block stream may also include third indication information, and the third indication information is used to indicate that the first sequence number is carried in the SDT code block sequence.
- the third indication information can also be carried by the S code block to which the preamble belongs. For example, a part of the field of the preamble included in the S code block can be used to carry the first sequence number, and another part of the field of the preamble included in the S code block can be used to carry the third indication information.
- the first FlexE code block stream when used to carry a small particle service, the first FlexE code block stream includes an fgBU OH and an fgBU payload.
- the fgBU OH may include the first sequence number.
- the fgBU OH may also include an fg-client identifier.
- the fg-client identifier may be an identifier of an fg-client to which the first FlexE code block stream belongs.
- the fg-client identifier may enable the receiving end to cache the code block streams corresponding to the fg-client identifier received from multiple FlexE channels based on the fg-client.
- the first FlexE code block stream may further include fourth indication information, where the fourth indication information is used to indicate that the first sequence number is carried in the fgBU OH.
- the fourth indication information may be carried by a flags field in the fgBU OH.
- the service carried by the first FlexE code block stream may be a constant bit rate (CBR) service.
- CBR constant bit rate
- the CBR service transmitted between the first communication device and the second communication device may be The service provides almost zero packet loss quality of service.
- the service carried by the first FlexE code block stream may be a variable bit rate (VBR) service.
- VBR variable bit rate
- a VBR service may also be referred to as an Ethernet-CBR service.
- a VBR service may also be directly understood as an Ethernet service. In this case, by using this solution, a quality of service of almost zero packet loss may be provided for the VBR service transmitted between the first communication device and the second communication device.
- the first FlexE code block stream when the service carried by the first FlexE code block stream is a VBR service, the first FlexE code block stream also includes a slice type identifier and slice length information, the slice type identifier is used to identify the slice type corresponding to the first FlexE code block stream, and the slice type includes: head slice, middle slice or tail slice, and the slice length information is used to identify the effective data length of the payload part in the first FlexE code block stream.
- the aforementioned first FlexE code block stream belongs to the first client, and the first communication device can add a serial number to the code block stream corresponding to the first client according to a certain period, for example, adding a serial number to the code block stream corresponding to the first client with a period of 20 milliseconds.
- the first communication device after the first communication device sends the first FlexE code block stream to the second communication device through the first FlexE channel and sends the first FlexE code block stream to the second communication device through the second FlexE channel, it can also obtain the second FlexE code block stream, the second FlexE code block stream includes a second serial number, the second serial number identifies the sending order of the second FlexE code block stream, the first serial number and the second serial number are numbered in sequence according to a preset rule, 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 send the second FlexE code block stream to the second communication device through the first FlexE channel, and send the second FlexE code block stream to the second communication device through the second FlexE channel.
- the second communication device can receive the second FlexE code block stream sent by the first communication device from at least one non-faulty FlexE channel, thereby achieving a communication effect with almost zero packet loss and improving the service quality provided to the business.
- an embodiment of the present application provides a communication method, which can be applied to a second communication device, and the second communication device can receive a first FlexE code block stream sent by the first communication device through a first FlexE channel between the first communication device and the second communication device, 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.
- the first FlexE code block stream includes a first sequence number, and the first sequence number identifies the order of sending the first FlexE code block stream.
- the second communication device can receive the first FlexE code block stream from two FlexE channels, and the possibility of both FlexE channels failing when transmitting the first FlexE code block stream is low, the second communication device can at least receive the first FlexE code block stream sent by the first communication device from a certain non-faulty FlexE channel. For example, when the first FlexE channel fails, the second communication device can receive the first FlexE code block stream from the second FlexE channel; when the second FlexE channel fails, the second communication device can receive the first FlexE code block stream from the first FlexE channel. Thereby achieving a communication effect with almost zero packet loss and improving the quality of service provided for the business. Since FlexE channels can implement hard isolation of services, this solution can achieve a communication effect of almost zero packet loss while implementing hard isolation of services.
- the second communication device in order to improve the quality of service, after the second communication device receives the first FlexE code block stream through two FlexE channels, it can determine further operations according to the time sequence of receiving the first FlexE code block stream from the two FlexE channels. As an example, the second communication device can forward the code block stream received by the FlexE channel with an earlier corresponding receiving time, and not forward the code block stream received by the FlexE channel with a later corresponding receiving time. In order to achieve this effect, in a specific example: the second communication device can cache the code blocks included in the first FlexE code block stream received through the first FlexE channel to the first cache unit.
- the second communication device can cache the code block stream belonging to the first client received after the first sequence number to the first cache unit after receiving the first sequence number. Similarly, the second communication device can cache the code blocks included in the first FlexE code block stream received through the second FlexE channel to the second cache unit.
- the second communication device may also receive the aforementioned second FlexE code block stream through the first FlexE channel, and cache the code blocks included in the second FlexE code block stream to the first cache 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 cache unit are extracted to perform a forwarding processing operation. As described above, after receiving the first sequence number, the second communication device may cache the code block stream belonging to the first client received after the first sequence number to the first cache unit. In one example, if the second communication device receives the second sequence number, the first cache unit includes the code block stream belonging to the first client received between the first sequence number and the second sequence number. In this case, the second communication device 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 operation mentioned in the embodiment of the present application may include forwarding and/or processing operations, where the forwarding operation may be, for example, forwarding the code block stream to a downstream node, and the processing operation may be, for example, recovering the client frame.
- the forwarding processing operation may be performed by a shim module of the second communication device.
- the second communication device can also clear the code blocks belonging to the first FlexE code block stream stored in the second cache unit.
- the second communication device can also clear the code blocks belonging to the first FlexE code block stream stored in the second cache unit.
- the second communication device can also clear the code blocks belonging to the first FlexE code block stream stored in the second cache unit.
- other code block streams belonging to the first client are no longer cached in the second cache unit to avoid repeated caching of code block streams that have been received through the first FlexE channel and forwarding processing operations have been performed.
- the second communication device after receiving the first FlexE code block stream through the first FlexE channel, receives the third FlexE code block stream through the first FlexE channel, wherein the third FlexE code block stream includes a third sequence number.
- the second communication device After receiving the first FlexE code block stream through the second FlexE channel, receives the second FlexE code block stream through the second FlexE channel, the second FlexE code block stream includes a second sequence number, the first sequence number, the second sequence number and the third sequence number are numbered in sequence according to a preset rule, and the 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 second communication device can cache the code blocks included in the third FlexE code block stream to the first cache unit, and store the code blocks included in the second FlexE code block stream to the second cache unit. Specifically, the second communication device can first clear the first cache unit, and further cache the code block stream belonging to the first client received after receiving the third sequence number to the first cache unit. The second communication device may store the code blocks included in the second FlexE code block stream received within a period of time after receiving the first sequence number and before receiving the second sequence number in the second cache unit. Further, the second communication device may extract the code blocks stored in the second cache unit to perform a forwarding processing operation.
- packet loss occurs in the first FlexE channel.
- the second communication device does not receive the second FlexE code block stream carrying the second sequence number through the first FlexE channel.
- the second communication device may also receive the second FlexE code block stream through the second FlexE channel, thereby avoiding packet loss of data received by the second communication device.
- the service transmission delay can be reduced as much as possible.
- the second communication device receives the second FlexE code block stream carrying the second sequence number through the first FlexE channel.
- the moment when the second communication device receives the second sequence number through the first FlexE channel is later than the moment when the second communication device receives the second sequence number through the second FlexE channel.
- the second communication device can perform a forwarding processing operation on the second FlexE code block stream received through the second FlexE channel.
- both the first FlexE channel and the second FlexE channel are FlexE small-granularity channels.
- this solution can provide a quality of service with almost zero packet loss for small-granularity services transmitted between the first communication device and the second communication device.
- both the first FlexE channel and the second FlexE channel are FlexE large-granularity channels.
- this solution can provide a quality of service with almost zero packet loss for large-granularity services transmitted between the first communication device and the second communication device.
- the first FlexE code block stream may be a code block stream obtained after encoding the service stream.
- the service stream may be first encapsulated using a container to obtain a container, and then the container may be encoded to obtain the first FlexE code block stream.
- the first FlexE channel and the second FlexE channel are large-granular channels
- a FlexE OH and a FlexE payload may be obtained.
- the first FlexE code block stream may include a FlexE OH and a FlexE payload, and in this case, the container may be carried by the FlexE payload.
- the first FlexE channel and the second FlexE channel are small-granular channels
- an fgBU may be obtained, and the fgBU may include an fgBU OH and an fgBU payload.
- the first FlexE code block stream may include an fgBU OH and an fgBU payload, and the container may be carried by the fgBU payload.
- the container overhead may include verification information, and the verification information is used to verify the container overhead, so as to ensure the legitimacy of the container overhead, and correspondingly, to ensure the accuracy of the first sequence number carried in the container overhead.
- the container overhead may include a check word field, and the check word field is used to carry the verification information.
- the first FlexE code block stream may include an O code block, and the O code block includes the first sequence number.
- the O code block includes the first sequence number.
- a new O code block may be defined, and the newly defined O code block may be 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.
- a certain Idle code block in the first FlexE code block stream may be replaced with the first indication information.
- the first indication information may be carried by the type field of the O code block.
- the first FlexE code block stream may include an SDT code block sequence consisting of an S code block, at least one D code block, and a T code block, and the SDT code block sequence includes the first sequence number.
- SDT code block sequence includes the first sequence number.
- a new SDT code block sequence may be defined, and the newly defined SDT code block sequence may be 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.
- a certain Idle code block in the first FlexE code block stream may be replaced with the second indication information.
- the second indication information may be carried by a T code block of the SDT code block sequence.
- the T code block in the SDT code block carrying the first sequence number may include a control block, and the control block is used to carry the second indication information.
- the SDT code block carries both the first sequence number and the second indication information.
- a field may be defined in the control block to carry the second indication information.
- the embodiment of the present application does not specifically limit the field in the control block used to carry the second indication information.
- the field may be a magic word field.
- the first FlexE code block stream may include a preamble, which is used to carry the first sequence number.
- the preamble is a part of an S code block in an SDT code block sequence.
- a new preamble may be newly defined, and the newly defined preamble is used to carry the first sequence number.
- the first FlexE code block stream may also include third indication information, and the third indication information is used to indicate that the first sequence number is carried in the SDT code block sequence.
- the third indication information can also be carried by the S code block to which the preamble belongs. For example, a part of the field of the preamble included in the S code block can be used to carry the first sequence number, and another part of the field of the preamble included in the S code block can be used to carry the third indication information.
- the first FlexE code block stream when used to carry a small particle service, the first FlexE code block stream includes an fgBU OH and an fgBU payload.
- the fgBU OH may include the first sequence number.
- the fgBU OH may also include an fg-client identifier.
- the fg-client identifier may be an identifier of an fg-client to which the first FlexE code block stream belongs.
- the fg-client identifier may enable the receiving end to cache the code block streams corresponding to the fg-client identifier received from multiple FlexE channels based on the fg-client.
- the first FlexE code block stream may further include fourth indication information, where the fourth indication information is used to indicate that the first sequence number is carried in the fgBU OH.
- the fourth indication information may be carried by an identification field in the fgBU OH.
- the service carried by the first FlexE code block stream may be a CBR service.
- a quality of service with almost zero packet loss can be provided for the CBR service transmitted between the first communication device and the second communication device.
- the service carried by the first FlexE code block stream may be a VBR service.
- the VBR service may also be referred to as an Ethernet-CBR service.
- the VBR service may also be directly understood as an Ethernet service. In this case, by using this solution, a quality of service with almost zero packet loss may be provided for the VBR service transmitted between the first communication device and the second communication device.
- an embodiment of the present application provides a first communication device, which includes a transceiver unit and a processing unit.
- the transceiver unit is used to perform the reception and/or transmission related operations performed by the first communication device in the above-mentioned first aspect and various possible implementations of the first aspect;
- the processing unit is used to perform operations other than the reception and/or transmission related operations performed by the first communication device in the above-mentioned first aspect and various possible implementations of the first aspect.
- the transceiver unit may include a receiving unit and/or a sending unit, the receiving unit is used to perform reception related operations, and the sending unit is used to perform sending related operations.
- the first FlexE channel and the second FlexE channel are both FlexE small particle channels.
- the first FlexE channel and the second FlexE channel are both FlexE large particle channels.
- the first FlexE code block stream is a FlexE code block stream obtained by encoding a container
- the container includes a container overhead and a container payload
- the container overhead includes the first sequence number
- the container payload carries service data.
- the container overhead also includes verification information, and the verification information is used to verify the container overhead.
- the first FlexE code block stream carries a small-grained service
- the first FlexE code block stream includes a fine-grained basic unit overhead fgBU OH and an fgBU payload
- the fgBU payload includes the container.
- the first FlexE code block stream includes an O code block
- the O code block includes the first sequence number
- 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.
- the type field of the O code block is used to carry the first indication information.
- 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, and the SDT code block sequence includes the first sequence number.
- the SDT code block sequence also includes second indication information, where the second indication information is used to indicate that the SDT code block includes the first sequence number.
- the T code block includes a control block, and the control block is used to carry the second indication information.
- the second indication information is a magic word.
- the first FlexE code block stream includes a preamble, and the preamble includes the first sequence number.
- the first FlexE code block stream includes third indication information, where the third indication information is used to indicate that the preamble includes the message sequence number.
- the first FlexE code block stream includes fgBU OH and fgBU payload
- the fgBU OH includes the first sequence number
- the fgBU OH also includes a fine-grained client fg-client identifier.
- the first FlexE code block stream carries a constant bit rate CBR service.
- the first FlexE code block stream carries a variable bit rate VBR service.
- the device also includes: an acquisition unit, used to acquire the first Flexible Ethernet FlexE code block stream; a processing unit, used to copy the first FlexE code block stream to obtain multiple first FlexE code block streams, so as to facilitate sending the multiple first FlexE code block streams to the second communication device respectively through multiple FlexE channels between the first communication device and the second communication device, and the multiple FlexE channels include the first FlexE channel and the second FlexE channel.
- the acquisition unit included in the device is also used to: acquire a second FlexE code block stream, the second FlexE code block stream includes a second serial number, the second serial number identifies the sending order of the second FlexE code block stream, the first serial number and the second serial number are numbered in sequence according to a preset rule, 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 client; the sending unit is also used to send the second FlexE code block stream to the second communication device through the first FlexE channel; and send the second FlexE code block stream to the second communication device through the second FlexE channel.
- an embodiment of the present application provides a second communication device, wherein the second communication device includes a transceiver unit and a processing unit.
- the transceiver unit is used to perform operations related to reception and/or transmission performed by the second communication device in the above-mentioned second aspect and various possible implementations of the second aspect;
- the processing unit is used to perform operations other than the operations related to reception and/or transmission performed by the second communication device in the above-mentioned second aspect and various possible implementations of the second aspect.
- the transceiver unit may include a receiving unit and/or a sending unit, the receiving unit is used to perform reception-related operations, and the sending unit is used to perform sending-related operations.
- the second communication device includes a receiving unit, which is used to receive a first FlexE code block stream sent by the first 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, the first sequence number identifying the sending 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.
- the device also includes: a processing unit, configured to cache the code blocks included in the first FlexE code block stream received through the first FlexE channel to a first cache unit, and cache the code blocks included in the first FlexE code block stream received through the second FlexE channel to a second cache unit.
- a processing unit configured to cache the code blocks included in the first FlexE code block stream received through the first FlexE channel to a first cache unit, and cache the code blocks included in the first FlexE code block stream received through the second FlexE channel to a second cache unit.
- the receiving unit is also used to receive a second FlexE code block stream through the first FlexE channel, the second FlexE code block stream includes a second serial number, the first serial number and the second serial number are numbered in sequence according to a preset rule, 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 processing unit included in the device is also used to cache the code blocks included in the second FlexE code block stream to the first cache unit; extract 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 cache unit to perform forwarding processing operations.
- the processing unit is further configured to: clear the code blocks belonging to the first FlexE code block stream stored in the second cache unit.
- the receiving unit is also used to receive a third FlexE code block stream through the first FlexE channel, wherein the third FlexE code block stream includes a third serial number; receive a second FlexE code block stream through the second FlexE channel, 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 in sequence according to a preset rule, and the 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 also used to cache the code blocks included in the third FlexE code block stream to the first cache unit; store the code blocks included in the second FlexE code block stream to the second cache unit; and extract the code blocks stored in the second cache unit to perform forwarding processing operations.
- the first communication device before receiving the third FlexE code block stream through the first FlexE channel, the first communication device has not received the second FlexE code block stream carrying the second sequence number through the first FlexE channel.
- the first FlexE channel and the second FlexE channel are both FlexE small particle channels.
- the first FlexE channel and the second FlexE channel are both FlexE large particle channels.
- the first FlexE code block stream is a FlexE code block stream obtained by encoding a container
- the container includes a container overhead and a container payload
- the container overhead includes the first sequence number
- the container payload carries service data.
- the container overhead also includes verification information, and the verification information is used to verify the container overhead.
- the first FlexE code block stream carries a small-grained service
- the first FlexE code block stream includes a fine-grained basic unit overhead fgBU OH and an fgBU payload
- the fgBU payload includes the container.
- the first FlexE code block stream includes an O code block
- the O code block includes the first sequence number
- 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.
- the type field of the O code block is used to carry the first indication information.
- the first FlexE code block stream includes a code block sequence consisting of a start S code block, at least one data D code block, and an end T code block, and the SDT code block sequence includes the first sequence number.
- the SDT code block sequence also includes second indication information, where the second indication information is used to indicate that the SDT code block includes the first sequence number.
- the T code block includes a control block, and the control block is used to carry the second indication information.
- the second indication information is a magic word.
- the first FlexE code block stream includes a preamble, and the preamble includes the first sequence number.
- the first FlexE code block stream includes third indication information, and the third indication information is used to indicate that the preamble code includes the message sequence number.
- the first FlexE code block stream includes fgBU OH and fgBU payload
- the fgBU OH includes the first sequence number
- the fgBU OH also includes a fine-grained client fg-client identifier.
- the first FlexE code block stream carries a constant bit rate CBR service.
- the first FlexE code block stream carries a variable bit rate VBR service.
- an embodiment of the present application provides a device.
- the device includes a processor and a memory.
- the memory is used to store instructions or computer programs.
- the processor is used to execute the instructions or computer programs in the memory, execute the method described in any one of the first aspects above, or execute the method described in any one of the second aspects above.
- an embodiment of the present application provides a computer-readable storage medium, including instructions or a computer program, which, when executed on a computer, enables the computer to execute any of the methods described in the first aspect above, or execute any of the methods described in the second aspect above.
- an embodiment of the present application provides a computer program product comprising instructions or a computer program, which, when executed on a computer, enables the computer to execute any of the methods described in the first aspect above, or execute any of the methods described in the second aspect above.
- an embodiment of the present application provides a communication system, comprising: a first communication device for executing the method described in any one of the first aspects above, and a second communication device for executing the method described in any one of the second aspects above.
- FIG. 1a is a schematic diagram of an SPN architecture supporting small particle technology provided in an embodiment of the present application
- FIG1b is a schematic diagram of a network architecture provided in an embodiment of the present application.
- FIG2 is a schematic diagram of an application scenario provided by an embodiment of the present application.
- FIG3 is a signaling interaction diagram of a communication method provided in an embodiment of the present application.
- FIG4a is a schematic structural diagram of a container provided in an embodiment of the present application.
- FIG4b is a schematic diagram of the structure of an O code block provided in an embodiment of the present application.
- FIG4c is a schematic diagram of the structure of an SDT code block sequence provided in an embodiment of the present application.
- FIG4d is a schematic diagram of the structure of a fgBU OH provided in an embodiment of the present application.
- FIG5 is a schematic diagram of an application scenario provided by an embodiment of the present application.
- FIG6 is a schematic diagram of the structure of a communication device provided in an embodiment of the present application.
- FIG7 is a schematic diagram of the structure of a communication device provided in an embodiment of the present application.
- FIG8 is a schematic diagram of the structure of a communication device provided in an embodiment of the present application.
- the embodiments of the present application provide a communication method and apparatus, which can achieve a communication effect of almost zero packet loss in a scenario where technology is used for communication between network devices, thereby providing a higher service quality for the business.
- FlexE can be used to carry at least one client, and a client can be transmitted on at least one PHY.
- FlexE can support the mapping of any number of different FlexE Clients on any group of PHYs. and transmission, thereby realizing functions such as PHY bundling, channelization and sub-rate.
- a FlexE client (also called a FlexE client interface) can be used to transmit the service data stream of the corresponding FlexE client.
- the FlexE client interface is a logical interface.
- Each FlexE interface can be logically divided into one or more FlexE client interfaces, each FlexE interface can be divided into multiple time slots in the time domain, and each FlexE client interface occupies at least one time slot of the multiple time slots.
- 64/66B means that the data code block includes 66 bits, the first two bits of the 66 bits are synchronization bits, and the last 64 bits are data bits. At the PCS layer, 64/66B can be extracted through the first two synchronization bits.
- FlexE shim As an additional logical layer inserted between the MAC and PHY (PCS sublayer) of the traditional Ethernet architecture, it is the core architecture for implementing FlexE technology based on the time slot distribution mechanism.
- the main function of FlexE shim is to encapsulate data into pre-divided time slots. Then, according to the FlexE time slot table, the divided time slots are mapped to the PHY in the FlexE group for transmission. Among them, each time slot is mapped to a PHY in the FlexE group. Taking 100GE PHY as an example, the FlexE Shim layer can divide each 100GE PHY in the FlexE Group into a data bearer channel of 20 time slots, and the bandwidth corresponding to each slot is 5Gbps. Every time the PHY sends 64/66B data of 1023*20Slot, a FlexE overhead (OH) will be inserted to tell the receiver how to parse the received data.
- OH FlexE overhead
- the slot corresponding to the large bandwidth can be further divided into multiple sub-slots to carry customer services with smaller bandwidth requirements, which are also referred to as small particle services.
- the large bandwidth can be understood as the bandwidth corresponding to the service layer of the small particle service.
- the service layer of the small particle service is the MTN channel layer
- the bandwidth of the MTN channel layer is 5Gbps
- the slot corresponding to the large bandwidth of 5Gbps is further divided according to the granularity of 10Mbps, and divided into 480 sub-slots, which are used to carry small particle services.
- the first sub-slot, the third sub-slot and the fifth sub-slot of the 480 sub-slots are used to carry small particle service 1.
- the service layer of the small particle service is the 10GE Ethernet physical layer
- the corresponding large bandwidth is further divided into multiple sub-slots according to a finer granularity to carry small particle services.
- the bandwidth granularity of small particles is finer
- small particle services refer to services with relatively small bandwidth requirements.
- the bandwidth requirement of the power line service is 10Mbps.
- the small-granule technology can be used to allocate a specified bandwidth for the power line service to carry the business traffic of the power line service.
- the above power line service is a small-granule service.
- FlexE shim when transmitting small-particle services, for the transmitter, in one example, FlexE shim can encapsulate the data into pre-divided sub-slots according to the small-particle time slot configuration for transmission. For the receiver, FlexE shim can restore the data received through the slot with a corresponding bandwidth of 5 Gbps to the original small-particle service data according to the small-particle time slot configuration and continue to transmit.
- the MTN path adaptation function can be used to encapsulate the data into the corresponding sub-slot for transmission, and for the receiver, the MTN path adaptation function can be used to restore the data received through the slot with a corresponding bandwidth of 5 Gbps to the original small-particle service data and continue to transmit.
- the small granularity service data may be carried in a fine granularity unit (FGU) base frame.
- FGU fine granularity unit
- the small granularity unit may also be referred to as an fgBU, and in the embodiment of the present application, the two may be used interchangeably.
- the service carried by the slot corresponding to the large bandwidth can be called a large-granularity service.
- SPN slicing packet network
- the SPN architecture includes:
- SPL Slicing packet layer
- SCL slicing channel layer
- STL slicing transport layer
- SDN integrated software defined network
- SCL includes FGU layer, MTN path (MTNP) layer and MTN section (MTNS) layer.
- FGU layer provides end-to-end deterministic low-latency N*10Mbps granularity hard slice channel for small-granular services.
- FGU layer is an independent sublayer and can be flexibly selected to be carried on MTN path layer or Ethernet physical layer as needed. In other words, the service layer of FGU layer can be MTN path layer or Ethernet physical layer.
- 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-premises equipment (CPE) scenarios and directly carry the FGU layer.
- CPE customer-premises equipment
- the MTNS and MTNP are introduced from the perspectives of the sending side behavior and the receiving side behavior.
- MTNS provides point-to-point connection, is responsible for time slotting adjacent nodes connected by Ethernet PHY, and provides bonding, sub-rate, and channelization functions.
- MTNS is bidirectional and symmetrical, and here we take one data transmission direction as an example to illustrate.
- MTNS inserts a special O code block into the 66B code block sequence, inserts a D code block after every 1023*20 66B code blocks, and inserts a D code block after every 1023*20 66B code blocks, for a total of 7 D code blocks.
- a special O code block is inserted after every 1023*20 code blocks. In this way, a total of 8*(1023*20+1) code blocks constitute an MTNS frame.
- the O code block plus the aforementioned 7 D code blocks constitute the overhead of the MTNS frame.
- the overhead carries some point-to-point link configuration information indicating MTNS, such as time slot configuration information, section layer group configuration information, and so on.
- the MTNS continuously sends data to the receiving end according to the above frame structure.
- the continuous MTNS frames are equivalent to a 66B code block stream, which is converted into bits, optical signals, or other analog signals such as electrical pulses according to the lower PHY layer protocol defined by the Ethernet Institute of Electrical and Electronics Engineers (IEEE) 802.3, and sent out from the sending side device.
- IEEE Ethernet Institute of Electrical and Electronics Engineers
- the receiving side On the receiving side, first, according to the Ethernet lower PHY layer protocol, the received signal (such as bits, optical signals, or other analog signals such as electrical pulses) is identified by the O code block, and the frame header of the MTNS frame is locked. According to the fixed count, it can be known that the next overhead code block appears after 1023*20 code blocks. Correspondingly, the receiving side can determine the position of the data corresponding to each time slot in the received signal based on the O code block.
- the received signal such as bits, optical signals, or other analog signals such as electrical pulses
- FIG1b is a schematic diagram of a network architecture provided in an embodiment of the present application.
- the MTNP layer obtains the client signal from the MAC layer, and the client signal may be a MAC frame.
- the MAC mentioned here may be a processing module of the MAC layer.
- the MTNP layer encodes the MAC frame into a series of 64/66B code block sequences. Specifically, each MAC frame will be 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 will be encoded into a series of 66B code block sequences.
- S code block start code block
- T code block end code block
- the MTNP will fill the 66B code block with I code blocks to ensure that the MTNP hard pipe has data to send at all times.
- the receiving side of the P node first identifies the MTNS frame according to the receiving side behavior of MTNS described above. Then, according to the pre-configuration, the MTNP data is restored from the specified MTNS time slot. The P node then performs MTNP forwarding. It should be noted here that the essential difference between MTNP forwarding and IP forwarding and MAC bridge forwarding is that MTNP forwarding exclusively occupies device forwarding resources, does not support statistical multiplexing, and the inlet and outlet of the network node (such as the P node) need to be configured with the same number of MTNS time slots.
- the slot corresponding to the large bandwidth can be further divided into multiple sub-slots for carrying small-granular services.
- the slot corresponding to the bandwidth of 5 Gbps is further divided into 480 sub-slots according to the granularity of 10 Mbps. 480 sub-slots are used to carry small-particle services.
- MTN FGU can further divide 480 10Mbps time slots in the 5Gbps MTNP in a hierarchical manner.
- MTNP and MTN FGU can be decoupled, and at this time, MTNP serves as the service layer of MTN FGU.
- the fg-BU may include an FGU base frame overhead and an FGU base frame payload.
- the FGU base frame overhead can be used to carry small-particle time slot information
- the FGU base frame payload is used to carry the small-particle service data.
- the small-particle time slot information can be a mapping relationship between a sub-slot and a sub-client.
- the sub-client is similar to the FlexE client and also corresponds to various user interfaces or bandwidths of the network. The difference from the FlexE client is that the sub-client represents the customer data stream transmitted on the sub-slot, and a sub-client can correspond to one or more sub-slots.
- an FGU base frame may include 24 sub-timeslots, each sub-timeslot includes 65 bytes, and each sub-timeslot can carry 8 65-bit code blocks.
- the MTN FGU layer like the MTNP, first encodes the MAC frame client signal into a 66B code block sequence, and then inserts the OAM code block.
- the OAM code block of the small-granular MTNP (fgMTNP) is inserted in the MTN FGU layer, not the OAM code block of the MTNP. Subsequently, a series of 66B code block sequences containing fgMTNP OAM code blocks are mapped into the 10Mbps time slot specified in the fg-BU according to the pre-configuration.
- the fgBU sequence itself is actually a string of 66B code blocks, which can be equivalent to the client signal of MTNP. After inserting the MTNP OAM code block, it is mapped into the time slot specified by MTNS according to the behavior of the MTNS sending side described above.
- the receiving side of the P node recovers the MTNP signal according to the above-mentioned 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, it can complete the framing of the fg-BU by searching the S code block.
- fgMTNP forwarding is the same as MTNP forwarding, which is TDM forwarding, occupies the device forwarding resources exclusively, and does not support statistical multiplexing.
- the P node does not terminate the OAM code block of fgMTNP.
- the sending side behavior of the P node is the reverse process of the receiving side behavior of the P node, which will not be described in detail here.
- the receiving side behavior of the PE2 node is the reverse process of the sending side behavior of the PE1 node, which will not be described in detail this time.
- the MAC frame is encoded by using the 64/66B encoding method
- the above is only shown as a possible implementation method, and the encoding technology used to encode the MAC frame is not limited to the 64/65B described above.
- the MAC frame can also be encoded by using the 64/65B encoding method; for another example, the MAC frame can also be encoded by using the 256/257B encoding method, and so on, which are not listed here one by one.
- unidirectional or bidirectional path protection can be implemented for the point-to-point SPN Ethernet hard dedicated line.
- the SPN channel layer can be detected for on-off according to the slice channel layer OAM.
- SPN Channel OAM can use the mechanism of replacing Idle code blocks to achieve rate adaptation.
- Fixed-period OAM is sent regularly within T+ ⁇ T, and OAM is sent at the location where it needs to be sent and there is an Idle code block.
- T is the sending period of SPN Channel OAM. After sending SPN Channel OAM, if no feedback message is received from the other end for the SPN Channel OAM within 3 detection cycles, it can be considered that the link is interrupted, so the business is switched to the backup path for transmission to keep the business running normally.
- the embodiments of the present application provide a communication method and apparatus, which can achieve a communication effect with almost zero packet loss in a scenario where technology is used for communication between network devices, thereby providing higher service quality for the business.
- FIG 2 is a schematic diagram of an application scenario provided by an embodiment of the present application.
- the provider edge device (provider edge, PE) 1 and PE2 can communicate through FlexE technology.
- multiple FlexE channels can be included between PE1 and PE2.
- Figure 2 shows two FlexE channels, namely FlexE channel-1 and FlexE channel-2.
- FlexE channel-1 includes the provider backbone device (provider, P) 1, and PE1 can communicate with PE2 through P1; FlexE channel-1 includes P2, and PE1 can communicate with PE2 through P2.
- FlexE channel-1 and FlexE channel-2 may be large-granularity channels for carrying large-granularity services.
- FlexE channel-1 and FlexE channel-2 may be small-granularity channels used to carry small-granularity services.
- the first communication device may correspond to PE1 shown in FIG. 2
- the second communication device may correspond to PE2 shown in FIG. 2
- the first FlexE channel in the method 100 may correspond to FlexE channel-1 shown in FIG. 2
- the second FlexE channel in the method 100 may correspond to FlexE channel-2 shown in FIG. 2 .
- the communication device mentioned in the embodiments of the present application may be a network device such as a switch or a router, or may be a component of a network device, such as a single board or a line card on the network device, or may be a functional module on the network device, or may be a chip for implementing the method of the present application, which is not specifically limited in the embodiments of the present application.
- the communication devices may be directly connected, for example, via an Ethernet cable or an optical cable, but not limited thereto.
- the device used to perform the transceiver operation in the present application may include, for example, an interface circuit of the chip, and the device used to perform the processing operation may include, for example, a circuit with a processing function in the chip.
- the first communication device corresponds to PE1, which can be understood as the first communication device being the PE1 itself, or as a component of the PE1.
- the second communication device corresponds to PE2, which can be understood as the second communication device being the PE2 itself, or as a component of the PE2.
- the code block stream mentioned in the embodiments of the present application may include multiple code blocks, and the code block stream may also be referred to as a "code stream”.
- the method 100 shown in FIG. 3 may include the following S101 - S104 .
- a 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, where the first FlexE code block stream includes a first sequence number, where the first sequence number identifies a sending order of the first FlexE code block stream.
- 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.
- the first communication device may obtain (e.g., generate) the first FlexE code block stream, and send the FlexE code block stream to the second communication device through the first FlexE channel and the second FlexE channel, respectively.
- the first FlexE code block stream may be copied to obtain multiple first FlexE code block streams.
- the first FlexE code block stream may be copied to obtain two first FlexE code block streams, one of which is sent to the second communication device through the first FlexE channel, and the other is sent to the second communication device through the second FlexE channel.
- a mirror image of the first FlexE code block stream may be obtained.
- the first communication device may generate multiple first FlexE code block streams.
- two first FlexE code block streams may be generated, one of which is sent to the second communication device via a first FlexE channel, and the other is sent to the second communication device via a second FlexE channel.
- the first FlexE code block stream when the first FlexE channel and the second FlexE channel are large-granule channels, the first FlexE code block stream is used to carry large-granule services; when the first FlexE channel and the second FlexE channel are small-granule channels, the first FlexE code block stream is used to carry small-granule services.
- the code blocks included in the first FlexE code block stream belong to the first client.
- the code blocks included in the first FlexE code block stream belong to the first sub-client, and when the first FlexE code block stream carries a large-granule service, the code blocks included in the first FlexE code block stream belong to the first FlexE client.
- the first sequence number identifies the sending order of the first FlexE code block stream, which can be understood as the first sequence number identifying the sending order of the first FlexE code block stream in the corresponding client.
- the service carried by the first FlexE code block stream may be a CBR service or a VBR service, which is not specifically limited in the embodiment of the present application.
- a VBR service may also be referred to as an Ethernet-CBR service.
- a VBR service may also be directly understood as an Ethernet service.
- the first FlexE code block stream when the service carried by the first FlexE code block stream is a VBR service, the first FlexE code block stream also includes a slice type identifier and slice length information, and the slice type identifier is used to identify the slice type corresponding to the first FlexE code block stream, and the slice type includes: a head slice, a middle slice or a tail slice, and the slice length information is used to identify the effective data length of the payload part in the first FlexE code block stream.
- the first FlexE code block stream may be a code block stream obtained after encoding.
- the FlexE code block stream may be a code block stream obtained after encoding the service flow.
- the service flow may be first encapsulated using a container to obtain a container, and then the container is encoded to obtain the first FlexE code block stream.
- the first FlexE channel and the second FlexE channel are large-granular channels
- a FlexE OH and a FlexE payload may be obtained.
- the first FlexE code block stream may include a FlexE OH and a FlexE payload, and in this case, the container may be carried by the FlexE payload.
- first FlexE channel and the second FlexE channel are small particle channels
- fgBU can be obtained, and fgBU can include fgBU OH and fgBU payload.
- the first FlexE code block stream can include fgBU OH and fgBU payload, and the container can be carried by the fgBU payload.
- the container is a packaging structure provided by the present application, which is used to encapsulate the business flow.
- the container may include a container overhead and a container payload, and the container overhead may be used to carry the first serial number.
- the container overhead may include a serial number field, and the serial number field is used to carry the first serial number.
- the container payload can be used to carry business flows. When the first FlexE channel and the second FlexE channel are large-granular channels, the container payload can be used to carry business flows corresponding to multiple clients; when the first FlexE channel and the second FlexE channel are small-granular channels, the container payload can be used to carry business flows corresponding to multiple sub-clients.
- the container overhead may include verification information, and the verification information is used to verify the container overhead, so as to ensure the legitimacy of the container overhead, and correspondingly, to ensure the accuracy of the first sequence number carried in the container overhead.
- the container overhead may include a check word field, and the check word field is used to carry the verification information.
- the container overhead may include an overhead control field in addition to the sequence number field and the check word field.
- the overhead control field may be used to indicate that the container overhead carries the first sequence number.
- the container overhead may also include a slice type identifier and slice length information.
- the container overhead may include a slice type field and a slice length field, the slice type field is used to carry the slice identifier, and the slice length field is used to carry the slice length information.
- the first FlexE code block stream may include an O code block, and the O code block includes the first sequence number.
- a new O code block may be defined, and the newly defined O code block may be used to carry the first sequence number.
- the first FlexE code block stream may also include a first indication information, and 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 present application does not specifically limit the carrying position of the first indication information in the first FlexE code block stream.
- an Idle code block in the first FlexE code block stream may be replaced with the first indication information.
- the first indication information may be carried by the type field of the O code block.
- the O code block may include a type field, four value fields, namely, a value 1 field, a value 2 field, a value 3 field, and a value 4 field.
- the O code block also includes a sequence number (SEQ) field and a cyclic redundancy check (CRC) field.
- SEQ sequence number
- CRC cyclic redundancy check
- the type field may be used to carry the first indication information, and one or more of the four value fields are used to carry the first serial number.
- the three value fields, value 1 field, value 2 field, and value 3 field are used to carry the first serial number.
- the values of other fields can be set according to the actual situation and are not specifically limited here.
- the value 3 field can be used to carry the check information corresponding to the O code block.
- the value of the SEQ field can be the default value.
- the first FlexE code block stream may include an SDT code block sequence consisting of an S code block, at least one D code block, and an end T code block, and the SDT code block sequence includes the first sequence number.
- a new SDT code block sequence may be defined, and the newly defined SDT code block sequence may be used to carry the first sequence number.
- the first FlexE code block stream may also include second indication information, and the second indication information is used to indicate that the first sequence number is carried in the SDT code block sequence. The embodiment of the present application does not specifically limit the carrying position of the second indication information in the first FlexE code block stream.
- an Idle code block in the first FlexE code block stream may be replaced with the second indication information.
- the The second indication information may be carried by the T code block of the SDT code block sequence.
- the T code block may include a control block, which is used to carry the second indication information.
- a field may be defined in the control block to carry the second indication information. The embodiment of the present application does not specifically limit the field in the control block used to carry the second indication information.
- the field may be a magic word field.
- FIG. 4c is a schematic diagram of the structure of an SDT code block sequence provided in an embodiment of the present application.
- the SDT code block includes an S code block, a D code block and a T code block, and the S code block includes a block type field and a preamble field.
- the D code block includes a sequence number field for carrying a first sequence number, and optionally, the D code block may also include a check word field for carrying check information.
- the T code block may adopt 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 FIG4c takes the T0 code block as an example for explanation.
- the control block includes a Magic Num field, and the magic word field is used to carry the second indication information. For example, the value of the Magic Num field may take a special value to represent the second indication information.
- the first FlexE code block stream may include a preamble, which is used to carry the first sequence number.
- the preamble is part of the S code block in the SDT code block sequence. For the preamble, it is not repeated here.
- a new preamble can be newly defined, and the newly defined preamble is used to carry the first sequence number.
- the first FlexE code block stream may also include a third indication information, which is used to indicate that the first sequence number is carried in the SDT code block sequence. The embodiment of the present application does not specifically limit the carrying position of the third indication information in the first FlexE code block stream.
- a certain Idle code block in the first FlexE code block stream can be replaced with the third indication information.
- the third indication information can also be carried by the S code block to which the preamble belongs. For example, a part of the field of the preamble included in the S code block may be used to carry the first sequence number, and another part of the field of the preamble included in the S code block may be used to carry the third indication information.
- the first FlexE code block stream when used to carry a small particle service, the first FlexE code block stream includes a fgBU OH and a fgBU payload.
- the fgBU OH may include the first serial number.
- the code blocks included in the first FlexE code block stream belong to the first client.
- the fgBU OH may also include an fg-client identifier.
- the fg-client identifier may be an identifier of the first fg-client.
- the fg-client identifier may enable the receiving end to cache the code block streams corresponding to the fg-client identifier received from multiple FlexE channels based on the fg-client.
- fg-client may also be referred to as sub-client, and the two may be used interchangeably.
- the first FlexE code block stream may further include fourth indication information, where the fourth indication information is used to indicate that the first sequence number is carried in the fgBU OH.
- the fourth indication information may be carried by an identification field in the fgBU OH.
- FIG. 4d is a schematic diagram of the structure of a fgBU OH provided in an embodiment of the present application.
- the fgBU OH may include a reserved field, a multiframe indication (MFI) field, a flags field, and a sequence number field.
- MFI multiframe indication
- the flags field is used to carry the fourth indication information
- the sequence number field is used to carry the first sequence number.
- the fgBU OH may also include other fields, such as a check word field for carrying the check information of the fgBU OH, which will not be described in detail here.
- the MFI field is used to indicate the number of each fgBU in the multiframe.
- the value range of the MFI field is 0-19.
- the value of the MFI field is 0.
- the value of the MFI field is 1, and so on.
- the value of the MFI field is 19.
- the second communication device receives the first FlexE code block stream sent by the first communication device through the first FlexE channel.
- the second communication device receives the first FlexE code block stream sent by the first communication device through the second FlexE channel.
- the first communication device sends a first FlexE code block stream to the second communication device through the first FlexE channel, and sends the first FlexE code block stream to the second communication device through the second FlexE channel.
- the second communication device can 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.
- the second communication device can The first FlexE code block stream is received, and the possibility that both FlexE channels fail when transmitting the first FlexE code block stream is low. Therefore, the second communication device can at least receive the first FlexE code block stream sent by the first communication device from a non-faulty FlexE channel. For example, when the first FlexE channel fails, the second communication device can receive the first FlexE code block stream from the second FlexE channel; when the second FlexE channel fails, the second communication device can receive the first FlexE code block stream from the first FlexE channel. Thereby, a communication effect with almost zero packet loss is achieved, and the service quality provided to the business is improved. Since the FlexE channel can achieve hard isolation of the business, the adoption of this solution can achieve a communication effect with almost zero packet loss while achieving hard isolation of the business.
- 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 milliseconds. In this case, after executing the above method 100, the first communication device may also perform the following steps A1-A3.
- Step A1 Obtain a second FlexE code block stream, the second FlexE code block stream includes a second serial number, the second serial number identifies the sending order of the second FlexE code block stream, the first serial number and the second serial number are numbered sequentially according to a preset rule, 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 client.
- Step A2 Send the second FlexE code block stream to the second communication device through the first FlexE channel.
- Step A3 Send the second FlexE code block stream to the second communication device through the second FlexE channel.
- the embodiments of the present application do not specifically limit the sequential numbering according to the preset rule, and the preset rule can be determined according to actual conditions.
- the sequential numbering according to the preset rule can be sequential numbering according to a fixed step length.
- the embodiments of the present application do not specifically limit the fixed step length, and the fixed step length can be 1. Assuming that the first sequence number is 1, the second sequence number is 2.
- the sequential numbering according to the preset rule can be sequential numbering according to a variable step length, which is not specifically limited in the embodiments of the present application.
- steps A1-A3 For the specific implementation of steps A1-A3, reference may be made to the specific implementation of S101-S102 in the above method 100, which will not be repeated here.
- the second communication device in order to improve the quality of service, after the second communication device receives the first FlexE code block stream through two FlexE channels, it can determine further operations according to the time sequence of receiving the first FlexE code block stream from the two FlexE channels. As an example, the second communication device can forward the code block stream received by the FlexE channel with an earlier receiving time, and not forward the code block stream received by the FlexE channel with a later receiving time. In order to achieve this effect, in a specific example:
- the second communication device may create a first cache instance corresponding to the first FlexE channel, and cache the code blocks included in the first FlexE code block stream received through the first FlexE channel to the first cache unit through the first cache instance.
- the second communication device may cache the code block stream belonging to the first client received after the first sequence number to the first cache unit.
- the second communication device may receive the first sequence number from a specific time slot, and determine the first client corresponding to the time slot according to the time slot mapping relationship, and further cache the code block stream of the first client.
- the second communication device may further extract the fg-client identifier carried in the fg-BU OH, and determine the sub-time slot carrying the code block stream corresponding to the fg-client identifier according to the time slot mapping relationship, and further cache the code block stream corresponding to the sub-time slot carrying the code block stream corresponding to the fg-client identifier to the first cache unit.
- the second communication device may create a second cache instance corresponding to the second FlexE channel, and cache the code blocks included in the first FlexE code block stream received through the second FlexE channel to the second cache unit through the second cache instance.
- the second communication device caches the code blocks included in the first FlexE code block stream received through the second FlexE channel to the second cache unit
- the second communication device caches the code blocks included in the first FlexE code block stream received through the first FlexE channel to the first cache unit
- the second communication device may also receive the aforementioned second FlexE code block stream through the first FlexE channel, and cache the code blocks included in the second FlexE code block stream to the first cache 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 cache unit are extracted to perform forwarding processing operations.
- the second communication device can cache the code block stream belonging to the first client received after the first sequence number to the first cache unit.
- the first cache unit includes the code block stream belonging to the first client received between the first sequence number and the second sequence number.
- the second communication device can extract the code block belonging to the first client received between the first sequence number and the second sequence number.
- the forwarding processing operation mentioned here may include forwarding and/or processing operations.
- the forwarding operation mentioned here may, for example, be forwarding the code block stream to a downstream node.
- the processing operation mentioned here may, for example, be recovering the client frame.
- the forwarding processing operation may be performed by a shim module of the second communication device.
- the second communication device can clear the code block stream belonging to the first client received between the first sequence number and the second sequence number from the first cache unit, and further cache the code block stream belonging to the first client received after the second sequence number to the first cache unit.
- the second communication device can also clear the code blocks belonging to the first FlexE code block stream stored in the second cache unit. In this scenario, even if the second communication device has not received the second sequence number from the second FlexE channel, before the second communication device receives the second sequence number from the second FlexE channel, other code block streams belonging to the first client are no longer cached in the second cache unit to avoid repeated caching of code block streams that have been received through the first FlexE channel and forwarding processing operations have been performed. In one example, the second communication device can continue to cache the code block stream belonging to the first client received after receiving the next sequence number until the next sequence number is received through the second FlexE channel.
- the second communication device after receiving the first FlexE code block stream through the first FlexE channel, receives the third FlexE code block stream through the first FlexE channel, wherein the third FlexE code block stream includes a third sequence number.
- the second communication device After receiving the first FlexE code block stream through the second FlexE channel, receives the second FlexE code block stream through the second FlexE channel, the second FlexE code block stream includes a second sequence number, the first sequence number, the second sequence number and the third sequence number are numbered in sequence according to a preset rule, and the 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 client.
- the second communication device can cache the code blocks included in the third FlexE code block stream to the first cache unit, and store the code blocks included in the second FlexE code block stream to the second cache unit. Specifically, the second communication device can first clear the first cache unit, and further cache the code block stream belonging to the first client received after receiving the third sequence number to the first cache unit. The second communication device may store the code blocks included in the second FlexE code block stream received within a period of time after receiving the first sequence number and before receiving the second sequence number in the second cache unit. Further, the second communication device may extract the code blocks stored in the second cache unit to perform a forwarding processing operation.
- the second communication device has not received the second FlexE code block stream carrying the second sequence number through the first FlexE channel.
- the second communication device can also receive the second FlexE code block stream through the second FlexE channel, thereby avoiding packet loss.
- the service transmission delay can be reduced as much as possible.
- the second communication device 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 serial number through the first FlexE channel.
- the moment when the second communication device receives the second serial number through the first FlexE channel is later than the moment when the second communication device receives the second serial number through the second FlexE channel.
- the second communication device can perform a forwarding processing operation on the second FlexE code block stream received through the second FlexE channel.
- the first cache unit and the second cache unit may correspond to different memories, for example, the first cache unit is a cache unit in the first memory, and the second cache unit is a cache unit in the second memory.
- the first cache unit and the second cache unit may also correspond to the same memory, in which case, the first cache unit and the second cache unit may correspond to two non-overlapping storage spaces in the same memory.
- PE1 can mark the code block stream corresponding to the first client with a serial number according to a period, and the way in which PE1 marks the code block stream corresponding to the first client with a serial number is: sequentially numbering with a fixed step size of 1.
- the code block stream corresponding to the first client includes three code block streams, namely, code block stream 510, code block stream 520, and code block stream 530.
- the serial number of the code block stream is located in the code block stream (for example, it can be carried by an O code, a preamble, etc.), and PE1 sends the three code block streams to PE2 through FlexE channel-1 and FlexE channel-2 respectively.
- PE2 After PE2 receives serial number 0 through FlexE channel-1, it creates a corresponding cache instance and caches the code blocks belonging to the first client received from FlexE channel-1 after receiving the serial number 0 into cache unit 1.
- PE2 After receiving the sequence number 0 through FlexE channel-2, PE2 creates a corresponding cache instance and sends the received sequence number 0 to the cache instance. Afterwards, the code blocks belonging to the first client received from FlexE channel-2 are cached in cache unit 2.
- the PE2 can clear the cache unit 2 and extract the code block in the cache unit 1 to perform the forwarding processing operation. After extracting the code block in the cache unit 1, the cache unit 1 is cleared. It is not difficult to understand that when PE2 receives sequence number 1 through FlexE channel-1, the code blocks cached in the cache unit 1 include: code block 511 and code block 521.
- PE2 continues to cache the code blocks belonging to the first client received from FlexE channel-1 after receiving the sequence number 1 into cache unit 1.
- PE2 After PE2 clears the code blocks in the cache unit 2, it does not cache data in the cache unit 2 before receiving the sequence number 1 through FlexE channel-2. When PE2 receives the sequence number 1 through FlexE channel-2, PE2 continues to cache the code blocks belonging to the first client received from FlexE channel-2 after receiving the sequence number 1 into the cache unit 2.
- the PE2 can clear the cache unit 1 and extract the code block in the cache unit 2 to perform the forwarding processing operation. After extracting the code block in the cache unit 2, the cache unit 2 is cleared. It is not difficult to understand that when PE2 receives sequence number 2 through FlexE channel-2, the code blocks cached in the cache unit 2 include: code block 522 and code block 531.
- FIG5 is an illustration of an example in which the code block stream corresponding to the first client includes three code block streams.
- the number of code block streams corresponding to the first client may be much greater than three.
- the operations performed by PE2 may be inferred from the example shown in FIG5 , and are not described in detail one by one here.
- PE1 can be equivalent to the first communication device in the above method embodiment
- PE2 can be equivalent to the second communication device in the above method embodiment
- FlexE channel-1 can correspond to the first FlexE channel in the above method embodiment
- FlexE channel-2 can correspond to the second FlexE channel in the above method embodiment
- cache unit 1 can correspond to the first cache unit in the above method embodiment
- cache unit 2 can correspond to the second cache unit in the above method embodiment.
- the embodiment of the present application also provides a communication device, see Figure 6, which is a schematic diagram of the structure of a communication device provided in the embodiment of the present application.
- the communication device 600 shown in Figure 6 may include a transceiver unit 601 and a processing unit 602.
- the transceiver unit 601 is used to perform operations related to receiving and/or sending; the processing unit 602 is used to perform operations other than operations related to receiving and/or sending.
- the transceiver unit 601 may include a receiving unit and/or a sending unit, the receiving unit is used to perform operations related to receiving, and the sending unit is used to perform operations related to sending.
- the transceiver unit 601 may include a sending unit, and the sending unit is used to send 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, and the first FlexE code block stream includes a first sequence number, and the first sequence number identifies the sending order of the first FlexE code block stream; 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.
- the first FlexE channel and the second FlexE channel are both FlexE small particle channels.
- the first FlexE channel and the second FlexE channel are both FlexE large particle channels.
- the first FlexE code block stream is a FlexE code block stream obtained by encoding a container
- the container includes a container overhead and a container payload
- the container overhead includes the first sequence number
- the container payload carries service data.
- the container overhead also includes verification information, and the verification information is used to verify the container overhead.
- the first FlexE code block stream carries a small-grained service
- the first FlexE code block stream includes a fine-grained basic unit overhead fgBU OH and an fgBU payload
- the fgBU payload includes the container.
- the first FlexE code block stream includes an O code block
- the O code block includes the first sequence number
- 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.
- the type field of the O code block is used to carry the first indication information.
- 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, and the SDT code block sequence includes the first sequence number.
- the SDT code block sequence also includes second indication information, where the second indication information is used to indicate Indicates that the SDT code block includes the first sequence number.
- the T code block includes a control block, and the control block is used to carry the second indication information.
- the second indication information is a magic word.
- the first FlexE code block stream includes a preamble, and the preamble includes the first sequence number.
- the first FlexE code block stream includes third indication information, where the third indication information is used to indicate that the preamble includes the message sequence number.
- the first FlexE code block stream includes fgBU OH and fgBU payload
- the fgBU OH includes the first sequence number
- the fgBU OH also includes a fine-grained client fg-client identifier.
- the first FlexE code block stream carries a constant bit rate CBR service.
- the first FlexE code block stream carries a variable bit rate VBR service.
- the device 600 also includes: an acquisition unit, used to acquire the first Flexible Ethernet FlexE code block stream; the processing unit 602, used to copy the first FlexE code block stream to obtain multiple first FlexE code block streams, so as to facilitate sending the multiple first FlexE code block streams to the second communication device respectively through multiple FlexE channels between the first communication device and the second communication device, and the multiple FlexE channels include the first FlexE channel and the second FlexE channel.
- an acquisition unit used to acquire the first Flexible Ethernet FlexE code block stream
- the processing unit 602 used to copy the first FlexE code block stream to obtain multiple first FlexE code block streams, so as to facilitate sending the multiple first FlexE code block streams to the second communication device respectively through multiple FlexE channels between the first communication device and the second communication device, and the multiple FlexE channels include the first FlexE channel and the second FlexE channel.
- the acquisition unit included in the device is also used to: acquire a second FlexE code block stream, the second FlexE code block stream includes a second serial number, the second serial number identifies the sending order of the second FlexE code block stream, the first serial number and the second serial number are numbered in sequence according to a preset rule, 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 client; the sending unit is also used to send the second FlexE code block stream to the second communication device through the first FlexE channel; and send the second FlexE code block stream to the second communication device through the second FlexE channel.
- the transceiver unit 601 may include a receiving unit, which is used to receive a first FlexE code block stream sent by the first 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 serial number, the first serial number identifying the sending 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.
- the processing unit 602 is configured to cache the code blocks included in the first FlexE code block stream received through the first FlexE channel into a first cache unit, and cache the code blocks included in the first FlexE code block stream received through the second FlexE channel into a second cache unit.
- the receiving unit is also used to receive a second FlexE code block stream through the first FlexE channel, the second FlexE code block stream includes a second serial number, the first serial number and the second serial number are numbered in sequence according to a preset rule, 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 processing unit included in the device is also used to cache the code blocks included in the second FlexE code block stream to the first cache unit; extract 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 cache unit to perform forwarding processing operations.
- the processing unit 602 is further configured to: clear the code blocks belonging to the first FlexE code block stream stored in the second cache unit.
- the receiving unit is also used to receive a third FlexE code block stream through the first FlexE channel, wherein the third FlexE code block stream includes a third serial number; receive a second FlexE code block stream through the second FlexE channel, 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 in sequence according to a preset rule, and the 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 also used to cache the code blocks included in the third FlexE code block stream to the first cache unit; store the code blocks included in the second FlexE code block stream to the second cache unit; and extract the code blocks stored in the second cache unit to perform forwarding processing operations.
- the first communication device before receiving the third FlexE code block stream through the first FlexE channel, the first communication device has not received the second FlexE code block stream carrying the second sequence number through the first FlexE channel.
- the first FlexE channel and the second FlexE channel are both FlexE small particle channels.
- the first FlexE channel and the second FlexE channel are both FlexE large particle channels.
- the first FlexE code block stream is a FlexE code block stream obtained by encoding a container
- the container includes a container overhead and a container payload
- the container overhead includes the first sequence number
- the container payload carries service data.
- the container overhead also includes verification information, and the verification information is used to verify the container overhead.
- the first FlexE code block stream carries a small-grained service
- the first FlexE code block stream includes a fine-grained basic unit overhead fgBU OH and an fgBU payload
- the fgBU payload includes the container.
- the first FlexE code block stream includes an O code block
- the O code block includes the first sequence number
- 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.
- the type field of the O code block is used to carry the first indication information.
- 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, and the SDT code block sequence includes the first sequence number.
- the SDT code block sequence also includes second indication information, where the second indication information is used to indicate that the SDT code block includes the first sequence number.
- the T code block includes a control block, and the control block is used to carry the second indication information.
- the second indication information is a magic word.
- the first FlexE code block stream includes a preamble, and the preamble includes the first sequence number.
- the first FlexE code block stream includes third indication information, where the third indication information is used to indicate that the preamble includes the message sequence number.
- the first FlexE code block stream includes fgBU OH and fgBU payload
- the fgBU OH includes the first sequence number
- the fgBU OH also includes a fine-grained client fg-client identifier.
- the first FlexE code block stream carries a constant bit rate CBR service.
- the first FlexE code block stream carries a variable bit rate VBR service.
- the embodiment of the present application further provides a communication device 700, as shown in Figure 7, which is a schematic diagram of the structure of a communication device provided in the embodiment of the present application.
- the communication device 700 includes a communication interface 701 and a processor 702 connected to the communication interface 701.
- the communication device 700 can be used to execute the method 100 in the above embodiment.
- the communication device 700 can execute the method 100 in the above embodiment.
- the communication device 700 is equivalent to the first communication device in the method 100.
- the communication interface 701 is used to execute the transceiver operation performed by the first communication device in the method 100.
- the processor 702 is used to execute operations other than the transceiver operation performed by the first communication device in the method 100.
- the communication interface 701 is used to send 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, the first FlexE code block stream including a first sequence number, the first sequence number identifying the sending order of the first FlexE code block stream, and sending 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.
- the processor 702 is used to copy the first FlexE code block stream to obtain multiple first FlexE code block streams.
- the communication device 700 can execute the method 100 in the above embodiment.
- the communication device 700 is equivalent to the second communication device in the method 100.
- the communication interface 701 is used to execute the transceiver operation performed by the second communication device in the method 100.
- the processor 702 is used to execute operations other than the transceiver operation performed by the second communication device in the method 100.
- the communication interface 701 is used 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.
- the processor 702 is used to cache the code blocks included in the first FlexE code block stream received through the first FlexE channel to the first cache unit, and cache the code blocks included in the first FlexE code block stream received through the second FlexE channel to the second cache unit.
- the processor 702 may be, for example, a central processing unit (CPU), a network processor (NP), or a combination of a CPU and a NP.
- the processor may also be, for example, an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof.
- the PLD may be a complex programmable logic device (CPLD), a field-programmable gate array (FPG), or a combination thereof.
- FPGA field-programmable gate array
- GAL generic array logic
- Processor 702 may refer to one processor or may include multiple processors.
- the embodiment of the present application further provides a communication device 800, as shown in Figure 8, which is a schematic diagram of the structure of a communication device provided in the embodiment of the present application.
- the communication device 800 can be used to execute the method 100 in the above embodiment.
- the communication device 800 may include a processor 810 and a transceiver 830.
- the communication device may further 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 (CPU), a network processor (NP), or a combination of a CPU and a NP.
- the processor may also be, for example, an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof.
- ASIC application-specific integrated circuit
- PLD programmable logic device
- the above-mentioned PLD may be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.
- the processor 810 may refer to one processor or may include multiple processors.
- the memory 820 may include a volatile memory (English: volatile memory), such as a random access memory (English: random-access memory, abbreviated: RAM); the memory may also include a non-volatile memory (English: non-volatile memory), such as a read-only memory (ROM), a flash memory (English: flash memory), a hard disk drive (HDD) or a solid-state drive (SSD); the memory 820 may also include a combination of the above-mentioned types of memories.
- the memory 820 may refer to one memory or may include multiple memories.
- the memory 820 stores computer-readable instructions, and the computer-readable instructions include multiple software modules, such as a sending module 821, a processing module 822 and a receiving module 823.
- the processor 810 may perform corresponding operations according to the instructions of each software module.
- the operation performed by a software module actually refers to the operation performed by the processor 810 according to the instructions of the software module.
- the communication device 800 can execute the method 100 in the above embodiment.
- the communication device 800 is equivalent to the first communication device in the method 100.
- the transceiver 830 is used to execute the transceiver operation performed by the first communication device in the method 100.
- the processor 810 is used to execute operations other than the transceiver operation performed by the first communication device in the method 100.
- the transceiver 830 is used to send 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, the first FlexE code block stream including a first sequence number, the first sequence number identifying the order of sending the first FlexE code block stream, and sending 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.
- the processor 810 is used to copy the first FlexE code block stream to obtain multiple first FlexE code block streams.
- the communication device 800 may execute the method 100 in the above embodiment.
- the communication device 800 is equivalent to the second communication device in the method 100.
- the transceiver 830 is used to execute the transceiver operation performed by the second communication device in the method 100.
- the processor 810 is used to execute operations other than the transceiver operation performed by the second communication device in the method 100.
- the transceiver 830 is used 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.
- the processor 810 is used to cache the code blocks included in the first FlexE code block stream received through the first FlexE channel to the first cache unit, and cache the code blocks included in the first FlexE code block stream received through the second FlexE channel to the second cache unit.
- the present application also provides a computer-readable storage medium, in which instructions are stored.
- the computer-readable storage medium is executed on a computer, the computer is enabled to execute any one or more operations of the methods (eg, method 100) described in the foregoing embodiments.
- the present application also provides a computer program product, including a computer program, which, when executed on a computer, enables the computer to execute any one or more operations of the method (eg, method 100) described in the foregoing embodiments.
- the present application also provides a communication system, comprising the first communication device and the second communication device mentioned in the above method embodiment.
- the disclosed systems, devices and methods can be implemented in other ways.
- the device embodiments described above are only schematic.
- the division of units is only a logical business division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed.
- Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms.
- the units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple 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.
- each business unit in each embodiment of the present application can be integrated into a processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.
- the above-mentioned integrated unit can be implemented in the form of hardware or in the form of software business units.
- the integrated unit is implemented in the form of a software business unit and sold or used as an independent product, it can be stored in a computer-readable storage medium.
- the computer software product is stored in a storage medium, including several instructions for a computer device (which can be a personal computer, server, or network device, etc.) to perform all or part of the steps of the various embodiments of the present application.
- the aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), disk or optical disk and other media that can store program code.
- the services described in the present invention can be implemented using hardware, software, firmware, or any combination thereof.
- the services can be stored in a computer-readable medium or transmitted as one or more instructions or codes on a computer-readable medium.
- Computer-readable media include computer storage media and communication media, wherein communication media include any media that facilitates the transmission of computer programs from one place to another. Storage media can be any available media that can be accessed by general or special-purpose computers.
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
Disclosed in the embodiments of the present application is a communication method. The method comprises: a first communication apparatus sending a first FlexE code block stream to a second communication apparatus by means of a first FlexE channel, and sending the first FlexE code block stream to the second communication apparatus by means of a second FlexE channel, 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. Since the second communication apparatus can receive the first FlexE code block stream from the two FlexE channels, and the possibility of the two FlexE channels both failing when transmitting the first FlexE code block stream is low, the second communication apparatus can at least receive from a certain fault-free FlexE channel the first FlexE code block stream sent by the first communication apparatus, and since the FlexE channels can realize hard service isolation, the solution can achieve the communication effect of almost zero packet loss while realizing the hard service isolation.
Description
本申请要求于2022年10月26日提交中国国家知识产权局、申请号为202211316947.4、申请名称为“一种通信方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims priority to the Chinese patent application filed with the State Intellectual Property Office of China on October 26, 2022, with application number 202211316947.4 and application name “A Communication Method and Device”, the entire contents of which are incorporated by reference in this application.
本申请涉及通信领域,尤其涉及一种通信方法及装置。The present application relates to the field of communications, and in particular to a communication method and device.
灵活以太(Flexible Ethernet,FlexE)技术具备带宽按需灵活分配的优点,其可以满足移动承载、家庭宽带、专线接入等网络场景需求。因此,FlexE技术的应用即将越来越广泛。Flexible Ethernet (FlexE) technology has the advantage of flexible bandwidth allocation on demand, which can meet the needs of network scenarios such as mobile bearer, home broadband, and dedicated line access. Therefore, the application of FlexE technology will become more and more extensive.
当网络设备间采用FlexE技术进行通信时,如何提升FlexE技术的通信质量,尽可能减少丢包率从而为业务提供更高的服务质量(quality of service,QoS),是目前尚待解决的问题。When network devices use FlexE technology for communication, how to improve the communication quality of FlexE technology and minimize the packet loss rate to provide higher quality of service (QoS) for the business is a problem that has yet to be solved.
发明内容Summary of the invention
本申请实施例提供了一种通信方法及装置,可以在网络设备间采用技术进行通信的场景下,达到几乎零丢包的通信效果,从而为业务提供更高的服务质量。The embodiments of the present application provide a communication method and apparatus, which can achieve a communication effect of almost zero packet loss in a scenario where technology is used for communication between network devices, thereby providing a higher service quality for the business.
第一方面,本申请实施例提供了一种通信方法,该方法可以应用于第一通信装置,第一通信装置和第二通信装置之间可以利用FlexE技术进行通信。在一个示例中,第一通信装置和第二通信装置之间可以包括至少两条FlexE通道。所述至少两条FlexE通道可以包括第一FlexE通道和第二FlexE通道。第一通信装置可以通过第一FlexE通道向第二通信装置发送第一FlexE码块流,并通过所述第二FlexE通道向所述第二通信装置发送所述第一FlexE码块流。所述第一FlexE码块流包括第一序列号,所述第一序列号标识所述第一FlexE码块流的发送顺序。由于所述第二通信装置可以从两个FlexE通道接收所述第一FlexE码块流,而两个FlexE通道在传输所述第一FlexE码块流时均出现故障的可能性较低,因此,第二通信装置至少可以从某一个未故障的FlexE通道接收到第一通信装置发送的第一FlexE码块流。例如,在所述第一FlexE通道故障时,第二通信装置可以从第二FlexE通道接收所述第一FlexE码块流;在所述第二FlexE通道故障时,第二通信装置可以从第一FlexE通道接收所述第一FlexE码块流。从而达到几乎零丢包的通信效果,提升了为业务提供的服务质量。由于FlexE通道可以实现业务硬隔离,因此,采用本方案,可以在实现业务硬隔离的同时,达到几乎零丢包的通信效果。In a first aspect, an embodiment of the present application provides a communication method, which can be applied to a first communication device, and the first communication device and the second communication device can communicate using FlexE technology. In an 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 through the first FlexE channel, and send the first FlexE code block stream to the second communication device through the second FlexE channel. The first FlexE code block stream includes a first sequence number, and the first sequence number identifies the order in which the first FlexE code block stream is sent. Since the second communication device can receive the first FlexE code block stream from two FlexE channels, and the possibility that both FlexE channels fail when transmitting the first FlexE code block stream is low, the second communication device can at least receive the first FlexE code block stream sent by the first communication device from a non-faulty FlexE channel. For example, when the first FlexE channel fails, the second communication device can receive the first FlexE code block stream from the second FlexE channel; when the second FlexE channel fails, the second communication device can receive the first FlexE code block stream from the first FlexE channel. This achieves a communication effect with almost zero packet loss, improving the service quality provided to the business. Since the FlexE channel can achieve hard isolation of services, this solution can achieve a communication effect with almost zero packet loss while achieving hard isolation of services.
在一种可能的实现方式中,所述第一通信装置可以获取(例如生成)所述第一FlexE码块流,并分别通过第一FlexE通道和第二FlexE通道向第二通信装置发送所述FlexE码块流。在一个示例中,所述第一通信装置获取所述第一FlexE码块流之后,可以对所述第一FlexE码块流进行复制,得到多份第一FlexE码块流。例如,可以对所述第一FlexE码块流进行复制,得到两份第一FlexE码块流,其中一份第一FlexE码块流通过第一FlexE通道向所述第二通信装置发送,另外一份第一FlexE码块流通过第二FlexE通道向所述第二通信装置发送。在一个示例中,对所述第一FlexE码块流进行复制,可以得到所述第一FlexE码块流的镜像。In a possible implementation, the first communication device may obtain (for example, generate) the first FlexE code block stream, and send the FlexE code block stream to the second communication device through the first FlexE channel and the second FlexE channel respectively. In one example, after the first communication device obtains the first FlexE code block stream, the first FlexE code block stream may be copied to obtain multiple first FlexE code block streams. For example, the first FlexE code block stream may be copied to obtain two first FlexE code block streams, one of which is sent to the second communication device through the first FlexE channel, and the other is sent to the second communication device through the second FlexE channel. In one example, by copying the first FlexE code block stream, a mirror image of the first FlexE code block stream can be obtained.
在一种可能的实现方式中,所述第一FlexE通道和所述第二FlexE通道均为FlexE小颗粒通道。对于这种情况,采用本方案,可以为在第一通信装置和第二通信装置之间传输的小颗粒业务提供几乎零丢包的服务质量。In a possible implementation, both the first FlexE channel and the second FlexE channel are FlexE small-granularity channels. In this case, this solution can provide a quality of service with almost zero packet loss for small-granularity services transmitted between the first communication device and the second communication device.
在一种可能的实现方式中,所述第一FlexE通道和所述第二FlexE通道均为FlexE大颗粒通道。对于这种情况,采用本方案,可以为在第一通信装置和第二通信装置之间传输的大颗粒业务提供几乎零丢包的服务质量。In a possible implementation, both the first FlexE channel and the second FlexE channel are FlexE large-granularity channels. In this case, this solution can provide a quality of service with almost zero packet loss for large-granularity services transmitted between the first communication device and the second communication device.
在一种可能的实现方式中,所述第一FlexE码块流可以是对业务流进行编码之后得到的码块流。作为一个示例,可以首先采用容器对业务流进行封装,得到容器,而后,对所述容器进行编码,从而得到所述第一FlexE码块流。In a possible implementation, the first FlexE code block stream may be a code block stream obtained after encoding the service stream. As an example, the service stream may be first encapsulated using a container to obtain a container, and then the container may be encoded to obtain the first FlexE code block stream.
在一种可能的实现方式中,当所述第一FlexE通道和所述第二FlexE通道为大颗粒通道时,对所述容器进行编码之后,可以得到FlexE OH和FlexE净荷。对于这种情况,所述第一FlexE码块流可以包括FlexE开销(overhead,OH)和FlexE净荷,对于这种情况,所述容器可以通过所述FlexE净荷承载。In a possible implementation, when the first FlexE channel and the second FlexE channel are large-granular channels, after encoding the container, a FlexE OH and a FlexE payload may be obtained. In this case, the first FlexE code block stream may include a FlexE overhead (OH) and a FlexE payload, and in this case, the container may be carried by the FlexE payload.
在一种可能的实现方式中,当所述第一FlexE通道和所述第二FlexE通道为小颗粒通道时,对所述容器进行编码之后,可以得到小颗粒基本单元(fine granularity basic unit,fgBU),fgBU可以包括fgBU
OH和fgBU净荷。对于这种情况,所述第一FlexE码块流可以包括fgBUOH和fgBU净荷,所述容器可以通过所述fgBU净荷承载。In a possible implementation, when the first FlexE channel and the second FlexE channel are small granule channels, after encoding the container, a fine granularity basic unit (fgBU) can be obtained, and the fgBU can include fgBU OH and fgBU payload. In this case, the first FlexE code block stream may include fgBUOH and fgBU payload, and the container may be carried by the fgBU payload.
在一种可能的实现方式中,所述容器开销中可以包括校验信息,该校验信息用于对所述容器开销进行校验,从而保证所述容器开销的合法性,相应的,保证所述容器开销中所携带的第一序列号的准确性。作为一个示例,所述容器开销可以包括校验字字段,该校验字字段用于携带校验信息。In a possible implementation, the container overhead may include verification information, and the verification information is used to verify the container overhead, so as to ensure the legitimacy of the container overhead, and correspondingly, to ensure the accuracy of the first sequence number carried in the container overhead. As an example, the container overhead may include a check word field, and the check word field is used to carry the verification information.
在一种可能的实现方式中,所述第一FlexE码块流可以包括O码块,所述O码块包括所述第一序列号。作为一个示例,可以定义一种新的O码块,并利用该新定义的O码块来携带所述第一序列号。In a possible implementation, the first FlexE code block stream may include an O code block, and the O code block includes the first sequence number. As an example, a new O code block may be defined, and the newly defined O code block may be used to carry the first sequence number.
在一种可能的实现方式中,当利用所述O码块来携带所述第一序列号时,所述第一FlexE码块流中还可以包括第一指示信息,该第一指示信息用于指示所述O码块用于携带所述第一序列号。In a possible implementation, 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.
在一种可能的实现方式中,可以将所述第一FlexE码块流中某一Idle码块替换成所述第一指示信息。In a possible implementation manner, a certain Idle code block in the first FlexE code block stream may be replaced with the first indication information.
在一种可能的实现方式中,为了避免对所述第一FlexE码块流进行过多的扩展,所述第一指示信息可以通过所述O码块的类型字段来携带。In a possible implementation, in order to avoid excessive extension of the first FlexE code block stream, the first indication information may be carried by the type field of the O code block.
在一种可能的实现方式中,所述第一FlexE码块流可以包括由一个开始(start,S)码块、至少一个数据(data,D)码块、和一个结束(terminate,T)码块所组成的SDT码块序列,所述SDT码块序列包括所述第一序列号。作为一个示例,可以新定义一种SDT码块序列,并利用该新定义的SDT码块序列来携带所述第一序列号。In a possible implementation, the first FlexE code block stream may include an SDT code block sequence consisting of a start (start, S) code block, at least one data (data, D) code block, and an end (terminate, T) code block, and the SDT code block sequence includes the first sequence number. As an example, a new SDT code block sequence may be defined, and the newly defined SDT code block sequence may be used to carry the first sequence number.
在一种可能的实现方式中,当利用所述SDT码块序列来携带所述第一序列号时,所述第一FlexE码块流中还可以包括第二指示信息,该第二指示信息用于指示所述SDT码块序列中携带所述第一序列号。In a possible implementation, 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.
在一种可能的实现方式中,可以将所述第一FlexE码块流中某一Idle码块替换成所述第二指示信息。In a possible implementation, a certain Idle code block in the first FlexE code block stream may be replaced with the second indication information.
在一种可能的实现方式中,为了避免对所述第一FlexE码块流进行过多的扩展,所述第二指示信息可以通过所述SDT码块序列的T码块来携带。In a possible implementation, in order to avoid excessive extension 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.
在一种可能的实现方式中,所述承载第一序列号的SDT码块中的T码块可以包括控制块,该控制块用于承载所述第二指示信息。采用这种方式,通过该SDT码块,既携带了第一序列号,又携带了第二指示信息。In a possible implementation, the T code block in the SDT code block carrying the first sequence number may include a control block, and the control block is used to carry the second indication information. In this way, the SDT code block carries both the first sequence number and the second indication information.
在一种可能的实现方式中,可以在所述控制块中定义一个字段来携带所述第二指示信息,本申请实施例不具体限定控制块中用于携带第二指示信息的字段,作为一个示例,该字段可以是魔术字(magic number,Magic Num)字段。In one possible implementation, a field may be defined in the control block to carry the second indication information. The embodiment of the present application does not specifically limit the field in the control block used to carry the second indication information. As an example, the field may be a magic number (Magic Num) field.
在一种可能的实现方式中,所述第一FlexE码块流可以包括前导码,该前导码用于携带所述第一序列号。其中:前导码是SDT码块序列中的S码块中的一部分。作为一个示例,可以新定义一种新的前导码,并利用该新定义的前导码来携带所述第一序列号。In a possible implementation, the first FlexE code block stream may include a preamble, which is used to carry the first sequence number. The preamble is a part of an S code block in an SDT code block sequence. As an example, a new preamble may be newly defined, and the newly defined preamble is used to carry the first sequence number.
在一种可能的实现方式中,当利用所述前导码来携带所述第一序列号时,所述第一FlexE码块流中还可以包括第三指示信息,该第三指示信息用于指示所述SDT码块序列中携带所述第一序列号。在一个示例中,可以将所述第一FlexE码块流中某一Idle码块替换成所述第三指示信息。在又一个示例中,为了避免对所述第一FlexE码块流进行过多的扩展,所述第三指示信息也可以通过所述前导码所属的S码块来携带。例如,可以利用S码块中所包括的前导码的一部分字段来携带所述第一序列号,利用S码块中所包括的前导码的另外一部分字段来携带所述第三指示信息。In a possible implementation, when the preamble is used to carry the first sequence number, the first FlexE code block stream may also include third indication information, and 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 can be replaced with the third indication information. In another example, in order to avoid excessive expansion of the first FlexE code block stream, the third indication information can also be carried by the S code block to which the preamble belongs. For example, a part of the field of the preamble included in the S code block can be used to carry the first sequence number, and another part of the field of the preamble included in the S code block can be used to carry the third indication information.
在一种可能的实现方式中,当所述第一FlexE码块流用于承载小颗粒业务时,所述第一FlexE码块流包括fgBU OH和fgBU净荷。对于这种情况,在一个示例中,所述fgBU OH可以包括所述第一序列号。在所述第一序列号通过fgBU OH携带的场景中,所述fgBU OH中还可以包括fg-client标识。该fg-client标识可以是所述第一FlexE码块流所属的fg-client的标识。该fg-client标识可以使得接收端基于所述fg-client,缓存从多个FlexE通道所接收到的与该fg-client标识对应的码块流。In a possible implementation, when the first FlexE code block stream is used to carry a small particle service, the first FlexE code block stream includes an fgBU OH and an fgBU payload. For this case, in an example, the fgBU OH may include the first sequence number. In a scenario where the first sequence number is carried by the fgBU OH, the fgBU OH may also include an fg-client identifier. The fg-client identifier may be an identifier of an fg-client to which the first FlexE code block stream belongs. The fg-client identifier may enable the receiving end to cache the code block streams corresponding to the fg-client identifier received from multiple FlexE channels based on the fg-client.
在一种可能的实现方式中,当利用所述fgBU OH来携带所述第一序列号时,所述第一FlexE码块流中还可以包括第四指示信息,该第四指示信息用于指示所述fgBU OH中携带所述第一序列号。在一个示例中,所述第四指示信息可以通过所述fgBU OH中的标识(flags)字段来携带。In a possible implementation, when the fgBU OH is used to carry the first sequence number, the first FlexE code block stream may further include fourth indication information, where the fourth indication information is used to indicate that the first sequence number is carried in the fgBU OH. In an example, the fourth indication information may be carried by a flags field in the fgBU OH.
在一种可能的实现方式中,所述第一FlexE码块流所承载的业务可以是固定比特率(constant bit rate,CBR)业务。对于这种情况,利用本方案,可以为第一通信装置和第二通信装置之间传输的CBR
业务提供几乎零丢包的服务质量。In a possible implementation, the service carried by the first FlexE code block stream may be a constant bit rate (CBR) service. In this case, the CBR service transmitted between the first communication device and the second communication device may be The service provides almost zero packet loss quality of service.
在一种可能的实现方式中,所述第一FlexE码块流所承载的业务可以是可变比特率(variable bit rate,VBR)业务。在一个示例中,VBR业务也可以被称为以太-CBR业务。在一些场景中,VBR业务也可以直接理解为以太业务。对于这种情况,利用本方案,可以为第一通信装置和第二通信装置之间传输的VBR业务提供几乎零丢包的服务质量。In a possible implementation, the service carried by the first FlexE code block stream may be a variable bit rate (VBR) service. In an example, a VBR service may also be referred to as an Ethernet-CBR service. In some scenarios, a VBR service may also be directly understood as an Ethernet service. In this case, by using this solution, a quality of service of almost zero packet loss may be provided for the VBR service transmitted between the first communication device and the second communication device.
在一种可能的实现方式中,当所述第一FlexE码块流所承载的业务为VBR业务时,所述第一FlexE码块流中还包括切片类型标识和切片长度信息,所述切片类型标识用于标识所述第一FlexE码块流对应的切片类型,所述切片类型包括:头切片、中间切片或者尾切片,所述切片长度信息用于标识承载所述第一FlexE码块流中净荷部分的有效数据长度。In a possible implementation, when the service carried by the first FlexE code block stream is a VBR service, the first FlexE code block stream also includes a slice type identifier and slice length information, the slice type identifier is used to identify the slice type corresponding to the first FlexE code block stream, and the slice type includes: head slice, middle slice or tail slice, and the slice length information is used to identify the effective data length of the payload part in the first FlexE code block stream.
在一种可能的实现方式中,前述第一FlexE码块流属于第一client,第一通信装置可以按照一定的周期为第一client对应的码块流添加序列号,例如以20毫秒为周期,为第一client对应的码块流添加序列号。对于这种情况,第一通信装置在通过第一FlexE通道向第二通信装置发送第一FlexE码块流,并通过所述第二FlexE通道向所述第二通信装置发送所述第一FlexE码块流之后,还可以获取第二FlexE码块流,所述第二FlexE码块流包括第二序列号,所述第二序列号标识所述第二FlexE码块流的发送顺序,所述第一序列号和所述第二序列号按照预设规则顺序编号,所述第一FlexE码块流包括的码块与所述第二FlexE码块流包括的码块属于同一个client,并进一步通过所述第一FlexE通道向所述第二通信装置发送所述第二FlexE码块流、以及通过所述第二FlexE通道向所述第二通信装置发送所述第二FlexE码块流。类似的,第二通信装置至少可以从某一个未故障的FlexE通道接收到第一通信装置发送的第二FlexE码块流,从而达到几乎零丢包的通信效果,提升了为业务提供的服务质量。In a possible implementation, the aforementioned first FlexE code block stream belongs to the first client, and the first communication device can add a serial number to the code block stream corresponding to the first client according to a certain period, for example, adding a serial number to the code block stream corresponding to the first client with a period of 20 milliseconds. In this case, after the first communication device sends the first FlexE code block stream to the second communication device through the first FlexE channel and sends the first FlexE code block stream to the second communication device through the second FlexE channel, it can also obtain the second FlexE code block stream, the second FlexE code block stream includes a second serial number, the second serial number identifies the sending order of the second FlexE code block stream, the first serial number and the second serial number are numbered in sequence according to a preset rule, 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 send the second FlexE code block stream to the second communication device through the first FlexE channel, and send the second FlexE code block stream to the second communication device through the second FlexE channel. Similarly, the second communication device can receive the second FlexE code block stream sent by the first communication device from at least one non-faulty FlexE channel, thereby achieving a communication effect with almost zero packet loss and improving the service quality provided to the business.
第二方面,本申请实施例提供了一种通信方法,该方法可以应用于第二通信装置,第二通信装置可以通过第一通信装置和所述第二通信装置之间的第一FlexE通道接收第一通信装置发送的第一FlexE码块流,并通过所述第一通信装置和所述第二通信装置之间的第二FlexE通道接收所述第一通信装置发送的所述第一FlexE码块流。所述第一FlexE码块流包括第一序列号,所述第一序列号标识所述第一FlexE码块流的发送顺序。由于所述第二通信装置可以从两个FlexE通道接收所述第一FlexE码块流,而两个FlexE通道在传输所述第一FlexE码块流时均出现故障的可能性较低,因此,第二通信装置至少可以从某一个未故障的FlexE通道接收到第一通信装置发送的第一FlexE码块流。例如,在所述第一FlexE通道故障时,第二通信装置可以从第二FlexE通道接收所述第一FlexE码块流;在所述第二FlexE通道故障时,第二通信装置可以从第一FlexE通道接收所述第一FlexE码块流。从而达到几乎零丢包的通信效果,提升了为业务提供的服务质量。由于FlexE通道可以实现业务硬隔离,因此,采用本方案,可以在实现业务硬隔离的同时,达到几乎零丢包的通信效果。In the second aspect, an embodiment of the present application provides a communication method, which can be applied to a second communication device, and the second communication device can receive a first FlexE code block stream sent by the first communication device through a first FlexE channel between the first communication device and the second communication device, 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. The first FlexE code block stream includes a first sequence number, and the first sequence number identifies the order of sending the first FlexE code block stream. Since the second communication device can receive the first FlexE code block stream from two FlexE channels, and the possibility of both FlexE channels failing when transmitting the first FlexE code block stream is low, the second communication device can at least receive the first FlexE code block stream sent by the first communication device from a certain non-faulty FlexE channel. For example, when the first FlexE channel fails, the second communication device can receive the first FlexE code block stream from the second FlexE channel; when the second FlexE channel fails, the second communication device can receive the first FlexE code block stream from the first FlexE channel. Thereby achieving a communication effect with almost zero packet loss and improving the quality of service provided for the business. Since FlexE channels can implement hard isolation of services, this solution can achieve a communication effect of almost zero packet loss while implementing hard isolation of services.
在一种可能的实现方式中,为了提升更好的服务质量,第二通信装置通过两个FlexE通道接收第一FlexE码块流之后,可以根据从两个FlexE通道接收第一FlexE码块流的时间顺序,确定进一步地的操作。作为一个示例,所述第二通信装置可以对对应接收时刻较早的FlexE通道所接收到的码块流进行转发处理,而对对应接收时刻较晚的FlexE通道所接收到的码块流不做转发处理。为了达到这一效果,在一个具体的示例中:所述第二通信装置可以将通过所述第一FlexE通道接收到的所述第一FlexE码块流包括的码块缓存到第一缓存单元。作为一个具体的示例,所述第二通信装置可以在接收到第一序列号之后,将第一序列号之后接收到的属于第一client的码块流缓存到第一缓存单元。类似的,所述第二通信装置可以将通过所述第二FlexE通道接收到的所述第一FlexE码块流包括的码块缓存到第二缓存单元。In a possible implementation, in order to improve the quality of service, after the second communication device receives the first FlexE code block stream through two FlexE channels, it can determine further operations according to the time sequence of receiving the first FlexE code block stream from the two FlexE channels. As an example, the second communication device can forward the code block stream received by the FlexE channel with an earlier corresponding receiving time, and not forward the code block stream received by the FlexE channel with a later corresponding receiving time. In order to achieve this effect, in a specific example: the second communication device can cache the code blocks included in the first FlexE code block stream received through the first FlexE channel to the first cache unit. As a specific example, the second communication device can cache the code block stream belonging to the first client received after the first sequence number to the first cache unit after receiving the first sequence number. Similarly, the second communication device can cache the code blocks included in the first FlexE code block stream received through the second FlexE channel to the second cache unit.
在一种可能的实现方式中,第二通信装置还可以通过所述第一FlexE通道接收前述第二FlexE码块流,并将所述第二FlexE码块流包括的码块缓存到所述第一缓存单元。进一步地,提取所述第一缓存单元存储的所述第一FlexE码块流包括的码块以及第二FlexE码块流包括的码块,以执行转发处理操作。如前所述,所述第二通信装置可以在接收到第一序列号之后,将第一序列号之后接收到的属于第一client的码块流缓存到第一缓存单元。在一个示例中,若第二通信装置接收到了第二序列号,则所述第一缓存单元中则包括在第一序列号和第二序列号之间接收的属于所述第一client的码块流。对于这种情况,所述第二通信装置可以提取所述在第一序列号和第二序列号之间接收的属于所述第一client的码块流,以执行转发处理操作。
In a possible implementation, the second communication device may also receive the aforementioned second FlexE code block stream through the first FlexE channel, and cache the code blocks included in the second FlexE code block stream to the first cache 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 cache unit are extracted to perform a forwarding processing operation. As described above, after receiving the first sequence number, the second communication device may cache the code block stream belonging to the first client received after the first sequence number to the first cache unit. In one example, if the second communication device receives the second sequence number, the first cache unit includes the code block stream belonging to the first client received between the first sequence number and the second sequence number. In this case, the second communication device 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.
作为一个示例,本申请实施例中提及的转发处理操作,可以包括转发和/或处理操作,转发操作例如可以是将码块流转发给下游节点,处理操作例如可以是恢复客户帧。在一个示例中,可以由第二通信装置的shim模块执行转发处理操作。As an example, the forwarding processing operation mentioned in the embodiment of the present application may include forwarding and/or processing operations, where the forwarding operation may be, for example, forwarding the code block stream to a downstream node, and the processing operation may be, for example, recovering the client frame. In one example, the forwarding processing operation may be performed by a shim module of the second communication device.
在一种可能的实现方式中,由于已经从第一FlexE通道接收到了第二序列号,对于这种情况,第二通信装置还可以清除所述第二缓存单元中存储的属于所述第一FlexE码块流的码块。在此场景中,作为一个示例,即使第二通信装置尚未从第二FlexE通道接收到第二序列号,在所述第二通信装置从第二FlexE通道接收到第二序列号之前,也不再向第二缓存单元中缓存属于所述第一client的其它码块流,以避免重复缓存已经通过第一FlexE通道接收并执行转发处理操作的码块流。In a possible implementation, since the second sequence number has been received from the first FlexE channel, in this case, the second communication device can also clear the code blocks belonging to the first FlexE code block stream stored in the second cache unit. In this scenario, as an example, even if the second communication device has not received the second sequence number from the second FlexE channel, before the second communication device receives the second sequence number from the second FlexE channel, other code block streams belonging to the first client are no longer cached in the second cache unit to avoid repeated caching of code block streams that have been received through the first FlexE channel and forwarding processing operations have been performed.
在一种可能的实现方式中,第二通信装置在通过第一FlexE通道接收第一FlexE码块流之后,通过所述第一FlexE通道接收第三FlexE码块流,其中,所述第三FlexE码块流包括第三序列号。第二通信装置在通过第二FlexE通道接收第一FlexE码块流之后,通过所述第二FlexE通道接收第二FlexE码块流,所述第二FlexE码块流包括第二序列号,所述第一序列号、所述第二序列号和所述第三序列号按照预设规则顺序编号,所述第一FlexE码块流、所述第二FlexE码块流和所述第三FlexE码块流所包括的码块属于同一个client。对于这种情况,所述第二通信装置可以将所述第三FlexE码块流包括的码块缓存到所述第一缓存单元,并将所述第二FlexE码块流包括的码块存储到所述第二缓存单元。具体地,所述第二通信装置可以首先清除所述第一缓存单元,并进一步将在接收到所述第三序列号之后接收到的属于第一client的码块流缓存至所述第一缓存单元。所述第二通信装置可以将在接收到第一序列号之后、接收到所述第二序列号之前这一段时间内所接收到的第二FlexE码块流包括的码块存储到所述第二缓存单元。进一步地,所述第二通信装置可以提取所述第二缓存单元中存储的码块,以执行转发处理操作。In a possible implementation, after receiving the first FlexE code block stream through the first FlexE channel, the second communication device receives the third FlexE code block stream through 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, the second FlexE code block stream includes a second sequence number, the first sequence number, the second sequence number and the third sequence number are numbered in sequence according to a preset rule, and the 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. In this case, the second communication device can cache the code blocks included in the third FlexE code block stream to the first cache unit, and store the code blocks included in the second FlexE code block stream to the second cache unit. Specifically, the second communication device can first clear the first cache unit, and further cache the code block stream belonging to the first client received after receiving the third sequence number to the first cache unit. The second communication device may store the code blocks included in the second FlexE code block stream received within a period of time after receiving the first sequence number and before receiving the second sequence number in the second cache unit. Further, the second communication device may extract the code blocks stored in the second cache unit to perform a forwarding processing operation.
在一种可能的实现方式中,第一FlexE通道发生了丢包,例如,第二通信装置在通过所述第一FlexE通道接收到所述第三FlexE码块流之前,所述第二通信装置未通过所述第一FlexE通道接收到携带有所述第二序列号的所述第二FlexE码块流。第二通信装置也可以通过第二FlexE通道接收到所述第二FlexE码块流,从而避免第二通信装置接收的数据出现丢包。In a possible implementation, packet loss occurs in the first FlexE channel. For example, before the second communication device receives the third FlexE code block stream through the first FlexE channel, the second communication device does not receive the second FlexE code block stream carrying the second sequence number through the first FlexE channel. The second communication device may also receive the second FlexE code block stream through the second FlexE channel, thereby avoiding packet loss of data received by the second communication device.
在一种可能的实现方式中,可以尽可能减少业务传输时延,例如,第二通信装置在通过所述第一FlexE通道接收到所述第三FlexE码块流之前,所述第二通信装置通过所述第一FlexE通道接收到携带有所述第二序列号的所述第二FlexE码块流。但是,第二通信装置通过第一FlexE通道接收第二序列号的时刻,晚于第二通信装置通过第二FlexE通道接收第二序列号的时刻。对于这种情况,第二通信装置可以对通过第二FlexE通道接收到所述第二FlexE码块流执行转发处理操作。In a possible implementation, 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 channel, the second communication device receives the second FlexE code block stream carrying the second sequence number through the first FlexE channel. However, the moment when the second communication device receives the second sequence number through the first FlexE channel is later than the moment when the second communication device receives the second sequence number through the second FlexE channel. In this case, the second communication device can perform a forwarding processing operation on the second FlexE code block stream received through the second FlexE channel.
在一种可能的实现方式中,所述第一FlexE通道和所述第二FlexE通道均为FlexE小颗粒通道。对于这种情况,采用本方案,可以为在第一通信装置和第二通信装置之间传输的小颗粒业务提供几乎零丢包的服务质量。In a possible implementation, both the first FlexE channel and the second FlexE channel are FlexE small-granularity channels. In this case, this solution can provide a quality of service with almost zero packet loss for small-granularity services transmitted between the first communication device and the second communication device.
在一种可能的实现方式中,所述第一FlexE通道和所述第二FlexE通道均为FlexE大颗粒通道。对于这种情况,采用本方案,可以为在第一通信装置和第二通信装置之间传输的大颗粒业务提供几乎零丢包的服务质量。In a possible implementation, both the first FlexE channel and the second FlexE channel are FlexE large-granularity channels. In this case, this solution can provide a quality of service with almost zero packet loss for large-granularity services transmitted between the first communication device and the second communication device.
在一种可能的实现方式中,所述第一FlexE码块流可以是对业务流进行编码之后得到的码块流。作为一个示例,可以首先采用容器对业务流进行封装,得到容器,而后,对所述容器进行编码,从而得到所述第一FlexE码块流。In a possible implementation, the first FlexE code block stream may be a code block stream obtained after encoding the service stream. As an example, the service stream may be first encapsulated using a container to obtain a container, and then the container may be encoded to obtain the first FlexE code block stream.
在一种可能的实现方式中,当所述第一FlexE通道和所述第二FlexE通道为大颗粒通道时,对所述容器进行编码之后,可以得到FlexE OH和FlexE净荷。对于这种情况,所述第一FlexE码块流可以包括FlexE OH和FlexE净荷,对于这种情况,所述容器可以通过所述FlexE净荷承载。In a possible implementation, when the first FlexE channel and the second FlexE channel are large-granular channels, after encoding the container, a FlexE OH and a FlexE payload may be obtained. In this case, the first FlexE code block stream may include a FlexE OH and a FlexE payload, and in this case, the container may be carried by the FlexE payload.
在一种可能的实现方式中,当所述第一FlexE通道和所述第二FlexE通道为小颗粒通道时,对所述容器进行编码之后,可以得到fgBU,fgBU可以包括fgBU OH和fgBU净荷。对于这种情况,所述第一FlexE码块流可以包括fgBUOH和fgBU净荷,所述容器可以通过所述fgBU净荷承载。In a possible implementation, when the first FlexE channel and the second FlexE channel are small-granular channels, after encoding the container, an fgBU may be obtained, and the fgBU may include an fgBU OH and an fgBU payload. In this case, the first FlexE code block stream may include an fgBU OH and an fgBU payload, and the container may be carried by the fgBU payload.
在一种可能的实现方式中,所述容器开销中可以包括校验信息,该校验信息用于对所述容器开销进行校验,从而保证所述容器开销的合法性,相应的,保证所述容器开销中所携带的第一序列号的准确性。作为一个示例,所述容器开销可以包括校验字字段,该校验字字段用于携带校验信息。
In a possible implementation, the container overhead may include verification information, and the verification information is used to verify the container overhead, so as to ensure the legitimacy of the container overhead, and correspondingly, to ensure the accuracy of the first sequence number carried in the container overhead. As an example, the container overhead may include a check word field, and the check word field is used to carry the verification information.
在一种可能的实现方式中,所述第一FlexE码块流可以包括O码块,所述O码块包括所述第一序列号。作为一个示例,可以定义一种新的O码块,并利用该新定义的O码块来携带所述第一序列号。In a possible implementation, the first FlexE code block stream may include an O code block, and the O code block includes the first sequence number. As an example, a new O code block may be defined, and the newly defined O code block may be used to carry the first sequence number.
在一种可能的实现方式中,当利用所述O码块来携带所述第一序列号时,所述第一FlexE码块流中还可以包括第一指示信息,该第一指示信息用于指示所述O码块用于携带所述第一序列号。In a possible implementation, 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.
在一种可能的实现方式中,可以将所述第一FlexE码块流中某一Idle码块替换成所述第一指示信息。In a possible implementation manner, a certain Idle code block in the first FlexE code block stream may be replaced with the first indication information.
在一种可能的实现方式中,为了避免对所述第一FlexE码块流进行过多的扩展,所述第一指示信息可以通过所述O码块的类型字段来携带。In a possible implementation, in order to avoid excessive extension of the first FlexE code block stream, the first indication information may be carried by the type field of the O code block.
在一种可能的实现方式中,所述第一FlexE码块流可以包括由一个S码块、至少一个D码块、和一个T码块所组成的SDT码块序列,所述SDT码块序列包括所述第一序列号。作为一个示例,可以新定义一种SDT码块序列,并利用该新定义的SDT码块序列来携带所述第一序列号。In a possible implementation, the first FlexE code block stream may include an SDT code block sequence consisting of an S code block, at least one D code block, and a T code block, and the SDT code block sequence includes the first sequence number. As an example, a new SDT code block sequence may be defined, and the newly defined SDT code block sequence may be used to carry the first sequence number.
在一种可能的实现方式中,当利用所述SDT码块序列来携带所述第一序列号时,所述第一FlexE码块流中还可以包括第二指示信息,该第二指示信息用于指示所述SDT码块序列中携带所述第一序列号。In a possible implementation, 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.
在一种可能的实现方式中,可以将所述第一FlexE码块流中某一Idle码块替换成所述第二指示信息。In a possible implementation, a certain Idle code block in the first FlexE code block stream may be replaced with the second indication information.
在一种可能的实现方式中,为了避免对所述第一FlexE码块流进行过多的扩展,所述第二指示信息可以通过所述SDT码块序列的T码块来携带。In a possible implementation, in order to avoid excessive extension 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.
在一种可能的实现方式中,所述承载第一序列号的SDT码块中的T码块可以包括控制块,该控制块用于承载所述第二指示信息。采用这种方式,通过该SDT码块,既携带了第一序列号,又携带了第二指示信息。In a possible implementation, the T code block in the SDT code block carrying the first sequence number may include a control block, and the control block is used 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, a field may be defined in the control block to carry the second indication information. The embodiment of the present application does not specifically limit the field in the control block used to carry the second indication information. As an example, the field may be a magic word field.
在一种可能的实现方式中,所述第一FlexE码块流可以包括前导码,该前导码用于携带所述第一序列号。其中:前导码是SDT码块序列中的S码块中的一部分。作为一个示例,可以新定义一种新的前导码,并利用该新定义的前导码来携带所述第一序列号。In a possible implementation, the first FlexE code block stream may include a preamble, which is used to carry the first sequence number. The preamble is a part of an S code block in an SDT code block sequence. As an example, a new preamble may be newly defined, and the newly defined preamble is used to carry the first sequence number.
在一种可能的实现方式中,当利用所述前导码来携带所述第一序列号时,所述第一FlexE码块流中还可以包括第三指示信息,该第三指示信息用于指示所述SDT码块序列中携带所述第一序列号。在一个示例中,可以将所述第一FlexE码块流中某一Idle码块替换成所述第三指示信息。在又一个示例中,为了避免对所述第一FlexE码块流进行过多的扩展,所述第三指示信息也可以通过所述前导码所属的S码块来携带。例如,可以利用S码块中所包括的前导码的一部分字段来携带所述第一序列号,利用S码块中所包括的前导码的另外一部分字段来携带所述第三指示信息。In a possible implementation, when the preamble is used to carry the first sequence number, the first FlexE code block stream may also include third indication information, and 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 can be replaced with the third indication information. In another example, in order to avoid excessive expansion of the first FlexE code block stream, the third indication information can also be carried by the S code block to which the preamble belongs. For example, a part of the field of the preamble included in the S code block can be used to carry the first sequence number, and another part of the field of the preamble included in the S code block can be used to carry the third indication information.
在一种可能的实现方式中,当所述第一FlexE码块流用于承载小颗粒业务时,所述第一FlexE码块流包括fgBU OH和fgBU净荷。对于这种情况,在一个示例中,所述fgBU OH可以包括所述第一序列号。在所述第一序列号通过fgBU OH携带的场景中,所述fgBU OH中还可以包括fg-client标识。该fg-client标识可以是所述第一FlexE码块流所属的fg-client的标识。该fg-client标识可以使得接收端基于所述fg-client,缓存从多个FlexE通道所接收到的与该fg-client标识对应的码块流。In a possible implementation, when the first FlexE code block stream is used to carry a small particle service, the first FlexE code block stream includes an fgBU OH and an fgBU payload. For this case, in an example, the fgBU OH may include the first sequence number. In a scenario where the first sequence number is carried by the fgBU OH, the fgBU OH may also include an fg-client identifier. The fg-client identifier may be an identifier of an fg-client to which the first FlexE code block stream belongs. The fg-client identifier may enable the receiving end to cache the code block streams corresponding to the fg-client identifier received from multiple FlexE channels based on the fg-client.
在一种可能的实现方式中,当利用所述fgBU OH来携带所述第一序列号时,所述第一FlexE码块流中还可以包括第四指示信息,该第四指示信息用于指示所述fgBU OH中携带所述第一序列号。在一个示例中,所述第四指示信息可以通过所述fgBU OH中的标识字段来携带。In a possible implementation, when the fgBU OH is used to carry the first sequence number, the first FlexE code block stream may further include fourth indication information, where the fourth indication information is used to indicate that the first sequence number is carried in the fgBU OH. In an example, the fourth indication information may be carried by an identification field in the fgBU OH.
在一种可能的实现方式中,所述第一FlexE码块流所承载的业务可以是CBR业务。对于这种情况,利用本方案,可以为第一通信装置和第二通信装置之间传输的CBR业务提供几乎零丢包的服务质量。In a possible implementation, the service carried by the first FlexE code block stream may be a CBR service. In this case, by using this solution, a quality of service with almost zero packet loss can be provided for the CBR service transmitted between the first communication device and the second communication device.
在一种可能的实现方式中,所述第一FlexE码块流所承载的业务可以是VBR业务。在一个示例中,VBR业务也可以被称为以太-CBR业务。在一些场景中,VBR业务也可以直接理解为以太业务。对于这种情况,利用本方案,可以为第一通信装置和第二通信装置之间传输的VBR业务提供几乎零丢包的服务质量。In a possible implementation, the service carried by the first FlexE code block stream may be a VBR service. In one example, the VBR service may also be referred to as an Ethernet-CBR service. In some scenarios, the VBR service may also be directly understood as an Ethernet service. In this case, by using this solution, a quality of service with almost zero packet loss may be provided for the VBR service transmitted between the first communication device and the second communication device.
在一种可能的实现方式中,当所述第一FlexE码块流所承载的业务为VBR业务时,所述第一FlexE码块流中还包括切片类型标识和切片长度信息,所述切片类型标识用于标识所述第一FlexE码块流对应的切片类型,所述切片类型包括:头切片、中间切片或者尾切片,所述切片长度信息用于标识承载所述
第一FlexE码块流中净荷部分的有效数据长度。In a possible implementation, when the service carried by the first FlexE code block stream is a VBR service, the first FlexE code block stream also includes a slice type identifier and slice length information, where the slice type identifier is used to identify the slice type corresponding to the first FlexE code block stream, and the slice type includes: a head slice, a middle slice, or a tail slice, and the slice length information is used to identify the service carrying the VBR service. The valid data length of the payload part in the first FlexE code block stream.
第三方面,本申请实施例提供了一种第一通信装置,所述第一通信装置包括收发单元和处理单元。所述收发单元用于执行上述第一方面以及第一方面各种可能的实现方式中由所述第一通信装置所执行的接收和/或发送相关的操作;所述处理单元用于执行上述第一方面以及第一方面各种可能的实现方式中由所述第一通信装置所执行接收和/或发送相关的操作之外的操作。在具体实现中,所述收发单元可以包括接收单元和/或发送单元,接收单元用于执行接收相关的操作,发送单元用于执行发送相关的操作。In a third aspect, an embodiment of the present application provides a first communication device, which includes a transceiver unit and a processing unit. The transceiver unit is used to perform the reception and/or transmission related operations performed by the first communication device in the above-mentioned first aspect and various possible implementations of the first aspect; the processing unit is used to perform operations other than the reception and/or transmission related operations performed by the first communication device in the above-mentioned 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 sending unit, the receiving unit is used to perform reception related operations, and the sending unit is used to perform sending related operations.
在一个具体的示例中:所述第一通信装置包括发送单元,所述发送单元,用于通过所述第一通信装置和所述第二通信装置之间的第一FlexE通道向所述第二通信装置发送第一灵活以太FlexE码块流,所述第一FlexE码块流包括第一序列号,所述第一序列号标识所述第一FlexE码块流的发送顺序;通过所述第一通信装置和所述第二通信装置之间的第二FlexE通道向所述第二通信装置发送所述第一FlexE码块流。In a specific example: the first communication device includes a sending unit, and the sending unit is used to send 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, and the first FlexE code block stream includes a first sequence number, and the first sequence number identifies the sending order of the first FlexE code block stream; 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.
在一种可能的实现方式中,所述第一FlexE通道和所述第二FlexE通道均为FlexE小颗粒通道。In a possible implementation, the first FlexE channel and the second FlexE channel are both FlexE small particle channels.
在一种可能的实现方式中,所述第一FlexE通道和所述第二FlexE通道均为FlexE大颗粒通道。In a possible implementation, the first FlexE channel and the second FlexE channel are both FlexE large particle channels.
在一种可能的实现方式中,所述第一FlexE码块流是对容器进行编码得到的FlexE码块流,所述容器包括容器开销和容器净荷,所述容器开销包括所述第一序列号,所述容器净荷承载业务数据。In a possible implementation, the first FlexE code block stream is a FlexE code block stream obtained by encoding a container, 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 also includes verification information, and the verification information is used to verify the container overhead.
在一种可能的实现方式中,所述第一FlexE码块流承载小颗粒业务,所述第一FlexE码块流包括细粒度基本单元开销fgBU OH和fgBU净荷,所述fgBU净荷包括所述容器。In one possible implementation, the first FlexE code block stream carries a small-grained service, and the first FlexE code block stream includes a fine-grained basic unit overhead fgBU OH and an fgBU payload, and the fgBU payload includes the container.
在一种可能的实现方式中,所述第一FlexE码块流包括O码块,所述O码块包括所述第一序列号。In a possible implementation, the first FlexE code block stream includes an O code block, and the O code block includes the first sequence number.
在一种可能的实现方式中,所述第一FlexE码块流还包括第一指示信息,所述第一指示信息用于指示所述O码块包括所述第一序列号。In a possible implementation, 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.
在一种可能的实现方式中,所述O码块的类型字段用于携带所述第一指示信息。In a possible implementation manner, the type field of the O code block is used to carry the first indication information.
在一种可能的实现方式中,所述第一FlexE码块流包括由一个开始S码块、至少一个数据D码块、和一个结束T码块所组成的SDT码块序列,所述SDT码块序列包括所述第一序列号。In a possible implementation, 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, and the SDT code block sequence includes the first sequence number.
在一种可能的实现方式中,所述SDT码块序列中还包括第二指示信息,所述第二指示信息用于指示所述SDT码块包括所述第一序列号。In a possible implementation manner, the SDT code block sequence also includes second indication information, where the second indication information is used to indicate that the SDT code block includes the first sequence number.
在一种可能的实现方式中,所述T码块包括控制块,所述控制块用于承载所述第二指示信息。In a possible implementation manner, the T code block includes a control block, and the control block is used to carry the second indication information.
在一种可能的实现方式中,所述第二指示信息为魔术字。In a possible implementation manner, the second indication information is a magic word.
在一种可能的实现方式中,所述第一FlexE码块流包括前导码,所述前导码包括所述第一序列号。In a possible implementation, the first FlexE code block stream includes a preamble, and the preamble includes the first sequence number.
在一种可能的实现方式中,所述第一FlexE码块流包括第三指示信息,所述第三指示信息用于指示所述前导码包括所述报文序列号。In a possible implementation, the first FlexE code block stream includes third indication information, where the third indication information is used to indicate that the preamble includes the message sequence number.
在一种可能的实现方式中,所述第一FlexE码块流包括fgBU OH和fgBU净荷,所述fgBU OH包括所述第一序列号,所述fgBU OH中还包括细粒度客户fg-client标识。In one possible implementation, the first FlexE code block stream includes fgBU OH and fgBU payload, the fgBU OH includes the first sequence number, and the fgBU OH also includes a fine-grained client fg-client identifier.
在一种可能的实现方式中,所述第一FlexE码块流承载固定比特率CBR业务。In a possible implementation manner, the first FlexE code block stream carries a constant bit rate CBR service.
在一种可能的实现方式中,所述第一FlexE码块流承载可变比特率VBR业务。In a possible implementation manner, the first FlexE code block stream carries a variable bit rate VBR service.
在一种可能的实现方式中,所述装置还包括:获取单元,用于获取所述第一灵活以太FlexE码块流;处理单元,用于复制所述第一FlexE码块流得到多个所述第一FlexE码块流,以便于通过所述第一通信装置和所述第二通信装置之间的多个FlexE通道向所述第二通信装置分别发送所述多个第一FlexE码块流,所述多个FlexE通道包括所述第一FlexE通道和所述第二FlexE通道。In a possible implementation, the device also includes: an acquisition unit, used to acquire the first Flexible Ethernet FlexE code block stream; a processing unit, used to copy the first FlexE code block stream to obtain multiple first FlexE code block streams, so as to facilitate sending the multiple first FlexE code block streams to the second communication device respectively through multiple FlexE channels between the first communication device and the second communication device, and the multiple FlexE channels include the first FlexE channel and the second FlexE channel.
在一种可能的实现方式中,所述装置包括的获取单元还用于:获取第二FlexE码块流,所述第二FlexE码块流包括第二序列号,所述第二序列号标识所述第二FlexE码块流的发送顺序,所述第一序列号和所述第二序列号按照预设规则顺序编号,所述第一FlexE码块流包括的码块与所述第二FlexE码块流包括的码块属于同一个客户client;所述发送单元,还用于通过所述第一FlexE通道向所述第二通信装置发送所述第二FlexE码块流;通过所述第二FlexE通道向所述第二通信装置发送所述第二FlexE码块流。
In a possible implementation, the acquisition unit included in the device is also used to: acquire a second FlexE code block stream, the second FlexE code block stream includes a second serial number, the second serial number identifies the sending order of the second FlexE code block stream, the first serial number and the second serial number are numbered in sequence according to a preset rule, 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 client; the sending unit is also used to send the second FlexE code block stream to the second communication device through the first FlexE channel; and send the second FlexE code block stream to the second communication device through the second FlexE channel.
第四方面,本申请实施例提供了一种第二通信装置,所述第二通信装置包括收发单元和处理单元。所述收发单元用于执行上述第二方面以及第二方面各种可能的实现方式中由所述第二通信装置所执行的接收和/或发送相关的操作;所述处理单元用于执行上述第二方面以及第二方面各种可能的实现方式中由所述第二通信装置所执行接收和/或发送相关的操作之外的操作。在具体实现中,所述收发单元可以包括接收单元和/或发送单元,接收单元用于执行接收相关的操作,发送单元用于执行发送相关的操作。In a fourth aspect, an embodiment of the present application provides a second communication device, wherein the second communication device includes a transceiver unit and a processing unit. The transceiver unit is used to perform operations related to reception and/or transmission performed by the second communication device in the above-mentioned second aspect and various possible implementations of the second aspect; the processing unit is used to perform operations other than the operations related to reception and/or transmission performed by the second communication device in the above-mentioned 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 sending unit, the receiving unit is used to perform reception-related operations, and the sending unit is used to perform sending-related operations.
在一个具体的示例中:所述第二通信装置包括接收单元,用于通过第一通信装置和所述第二通信装置之间的第一FlexE通道接收第一通信装置发送的第一FlexE码块流,所述第一FlexE码块流包括第一序列号,所述第一序列号标识所述第一FlexE码块流的发送顺序,并通过所述第一通信装置和所述第二通信装置之间的第二FlexE通道接收所述第一通信装置发送的所述第一FlexE码块流。In a specific example: the second communication device includes a receiving unit, which is used to receive a first FlexE code block stream sent by the first 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, the first sequence number identifying the sending 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.
在一种可能的实现方式中,所述装置还包括:处理单元,用于将通过所述第一FlexE通道接收到的所述第一FlexE码块流包括的码块缓存到第一缓存单元,并将通过所述第二FlexE通道接收的所述第一FlexE码块流包括的码块缓存到第二缓存单元。In one possible implementation, the device also includes: a processing unit, configured to cache the code blocks included in the first FlexE code block stream received through the first FlexE channel to a first cache unit, and cache the code blocks included in the first FlexE code block stream received through the second FlexE channel to a second cache unit.
在一种可能的实现方式中,所述接收单元,还用于通过所述第一FlexE通道接收第二FlexE码块流,所述第二FlexE码块流包括第二序列号,所述第一序列号和所述第二序列号按照预设规则顺序编号,所述第一FlexE码块流包括的码块与所述第二FlexE码块流包括的码块属于同一个客户client;所述装置包括的处理单元,还用于将所述第二FlexE码块流包括的码块缓存到所述第一缓存单元;提取所述第一缓存单元存储的所述第一FlexE码块流包括的码块以及第二FlexE码块流包括的码块,以执行转发处理操作。In a possible implementation, the receiving unit is also used to receive a second FlexE code block stream through the first FlexE channel, the second FlexE code block stream includes a second serial number, the first serial number and the second serial number are numbered in sequence according to a preset rule, 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 processing unit included in the device is also used to cache the code blocks included in the second FlexE code block stream to the first cache unit; extract 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 cache unit to perform forwarding processing operations.
在一种可能的实现方式中,所述处理单元,还用于:清除所述第二缓存单元中存储的属于所述第一FlexE码块流的码块。In a possible implementation manner, the processing unit is further configured to: clear the code blocks belonging to the first FlexE code block stream stored in the second cache unit.
在一种可能的实现方式中,所述接收单元,还用于通过所述第一FlexE通道接收第三FlexE码块流,其中,所述第三FlexE码块流包括第三序列号;通过所述第二FlexE通道接收第二FlexE码块流,所述第二FlexE码块流包括第二序列号,所述第一序列号、所述第二序列号和所述第三序列号按照预设规则顺序编号,所述第一FlexE码块流、所述第二FlexE码块流和所述第三FlexE码块流所包括的码块属于同一个客户client;所述处理单元,还用于将所述第三FlexE码块流包括的码块缓存到所述第一缓存单元;将所述第二FlexE码块流包括的码块存储到所述第二缓存单元;提取所述第二缓存单元存储的码块,以执行转发处理操作。In a possible implementation, the receiving unit is also used to receive a third FlexE code block stream through the first FlexE channel, wherein the third FlexE code block stream includes a third serial number; receive a second FlexE code block stream through the second FlexE channel, 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 in sequence according to a preset rule, and the 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 also used to cache the code blocks included in the third FlexE code block stream to the first cache unit; store the code blocks included in the second FlexE code block stream to the second cache unit; and extract the code blocks stored in the second cache unit to perform forwarding processing operations.
在一种可能的实现方式中,在通过所述第一FlexE通道接收到所述第三FlexE码块流之前,所述第一通信装置未通过所述第一FlexE通道接收到携带有所述第二序列号的所述第二FlexE码块流。In a possible implementation, before receiving the third FlexE code block stream through the first FlexE channel, the first communication device has not received the second FlexE code block stream carrying the second sequence number through the first FlexE channel.
在一种可能的实现方式中,所述第一FlexE通道和所述第二FlexE通道均为FlexE小颗粒通道。In a possible implementation, the first FlexE channel and the second FlexE channel are both FlexE small particle channels.
在一种可能的实现方式中,所述第一FlexE通道和所述第二FlexE通道均为FlexE大颗粒通道。In a possible implementation, the first FlexE channel and the second FlexE channel are both FlexE large particle channels.
在一种可能的实现方式中,所述第一FlexE码块流是对容器进行编码得到的FlexE码块流,所述容器包括容器开销和容器净荷,所述容器开销包括所述第一序列号,所述容器净荷承载业务数据。In a possible implementation, the first FlexE code block stream is a FlexE code block stream obtained by encoding a container, 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 also includes verification information, and the verification information is used to verify the container overhead.
在一种可能的实现方式中,所述第一FlexE码块流承载小颗粒业务,所述第一FlexE码块流包括细粒度基本单元开销fgBU OH和fgBU净荷,所述fgBU净荷包括所述容器。In one possible implementation, the first FlexE code block stream carries a small-grained service, and the first FlexE code block stream includes a fine-grained basic unit overhead fgBU OH and an fgBU payload, and the fgBU payload includes the container.
在一种可能的实现方式中,所述第一FlexE码块流包括O码块,所述O码块包括所述第一序列号。In a possible implementation, the first FlexE code block stream includes an O code block, and the O code block includes the first sequence number.
在一种可能的实现方式中,所述第一FlexE码块流还包括第一指示信息,所述第一指示信息用于指示所述O码块包括所述第一序列号。In a possible implementation, 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.
在一种可能的实现方式中,所述O码块的类型字段用于携带所述第一指示信息。In a possible implementation manner, the type field of the O code block is used to carry the first indication information.
在一种可能的实现方式中,所述第一FlexE码块流包括由一个开始S码块、至少一个数据D码块、和一个结束T码块所组成的码块序列,所述SDT码块序列包括所述第一序列号。In a possible implementation, the first FlexE code block stream includes a code block sequence consisting of a start S code block, at least one data D code block, and an end T code block, and the SDT code block sequence includes the first sequence number.
在一种可能的实现方式中,所述SDT码块序列中还包括第二指示信息,所述第二指示信息用于指示所述SDT码块包括所述第一序列号。In a possible implementation manner, the SDT code block sequence also includes second indication information, where the second indication information is used to indicate that the SDT code block includes the first sequence number.
在一种可能的实现方式中,所述T码块包括控制块,所述控制块用于承载所述第二指示信息。
In a possible implementation manner, the T code block includes a control block, and the control block is used to carry the second indication information.
在一种可能的实现方式中,所述第二指示信息为魔术字。In a possible implementation manner, the second indication information is a magic word.
在一种可能的实现方式中,所述第一FlexE码块流包括前导码,所述前导码包括所述第一序列号。In a possible implementation, the first FlexE code block stream includes a preamble, and the preamble includes the first sequence number.
在一种可能的实现方式中,所述第一FlexE码块流包括第三指示信息,所述第三指示信息用于指示所述前导码包括所述报文序列号。In a possible implementation, the first FlexE code block stream includes third indication information, and the third indication information is used to indicate that the preamble code includes the message sequence number.
在一种可能的实现方式中,所述第一FlexE码块流包括fgBU OH和fgBU净荷,所述fgBU OH包括所述第一序列号,所述fgBU OH中还包括细粒度客户fg-client标识。In one possible implementation, the first FlexE code block stream includes fgBU OH and fgBU payload, the fgBU OH includes the first sequence number, and the fgBU OH also includes a fine-grained client fg-client identifier.
在一种可能的实现方式中,所述第一FlexE码块流承载固定比特率CBR业务。In a possible implementation manner, the first FlexE code block stream carries a constant bit rate CBR service.
在一种可能的实现方式中,所述第一FlexE码块流承载可变比特率VBR业务。In a possible implementation manner, the first FlexE code block stream carries a variable bit rate VBR service.
第五方面,本申请实施例提供了一种设备。所述设备包括处理器和存储器。所述存储器用于存储指令或计算机程序。所述处理器用于执行所述存储器中的所述指令或计算机程序,执行以上第一方面任意一项所述的方法,或者执行以上第二方面任意一项所述的方法。In a fifth aspect, an embodiment of the present application provides a device. The device includes a processor and a memory. The memory is used to store instructions or computer programs. The processor is used to execute the instructions or computer programs in the memory, execute the method described in any one of the first aspects above, or execute the method described in any one of the second aspects above.
第六方面,本申请实施例提供了一种计算机可读存储介质,包括指令或计算机程序,当其在计算机上运行时,使得计算机执行以上第一方面任意一项所述的方法,或者执行以上第二方面任意一项所述的方法。In a sixth aspect, an embodiment of the present application provides a computer-readable storage medium, including instructions or a computer program, which, when executed on a computer, enables the computer to execute any of the methods described in the first aspect above, or execute any of the methods described in the second aspect above.
第七方面,本申请实施例提供了一种包含指令或计算机程序的计算机程序产品,当其在计算机上运行时,使得计算机执行以上第一方面任意一项所述的方法,或者执行以上第二方面任意一项所述的方法。In the seventh aspect, an embodiment of the present application provides a computer program product comprising instructions or a computer program, which, when executed on a computer, enables the computer to execute any of the methods described in the first aspect above, or execute any of the methods described in the second aspect above.
第八方面,本申请实施例提供了一种通信系统,所述通信系统包括:执行以上第一方面任意一项所述的方法的第一通信装置、以及执行以上第二方面任意一项所述的方法的第二通信装置。In an eighth aspect, an embodiment of the present application provides a communication system, comprising: a first communication device for executing the method described in any one of the first aspects above, and a second communication device for executing the method described in any one of the second aspects above.
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.
图1a为本申请实施例提供的一种支持小颗粒技术的SPN架构的示意图;FIG. 1a is a schematic diagram of an SPN architecture supporting small particle technology provided in an embodiment of the present application;
图1b为本申请实施例提供的一种网络架构示意图;FIG1b is a schematic diagram of a network architecture provided in an embodiment of the present application;
图2为本申请实施例提供的一种应用场景示意图;FIG2 is a schematic diagram of an application scenario provided by an embodiment of the present application;
图3为本申请实施例提供的一种通信方法的信令交互图;FIG3 is a signaling interaction diagram of a communication method provided in an embodiment of the present application;
图4a为本申请实施例提供的一种容器的结构示意图;FIG4a is a schematic structural diagram of a container provided in an embodiment of the present application;
图4b为本申请实施例提供的一种O码块的结构示意图;FIG4b is a schematic diagram of the structure of an O code block provided in an embodiment of the present application;
图4c为本申请实施例提供的一种SDT码块序列的结构示意图;FIG4c is a schematic diagram of the structure of an SDT code block sequence provided in an embodiment of the present application;
图4d为本申请实施例提供的一种fgBU OH的结构示意图;FIG4d is a schematic diagram of the structure of a fgBU OH provided in an embodiment of the present application;
图5为本申请实施例提供的一种应用场景示意图;FIG5 is a schematic diagram of an application scenario provided by an embodiment of the present application;
图6为本申请实施例提供的一种通信装置的结构示意图;FIG6 is a schematic diagram of the structure of a communication device provided in an embodiment of the present application;
图7为本申请实施例提供的一种通信装置的结构示意图;FIG7 is a schematic diagram of the structure of a communication device provided in an embodiment of the present application;
图8为本申请实施例提供的一种通信装置的结构示意图。FIG8 is a schematic diagram of the structure of a communication device provided in an embodiment of the present application.
本申请实施例提供了一种通信方法及装置,可以在网络设备间采用技术进行通信的场景下,达到几乎零丢包的通信效果,从而为业务提供更高的服务质量。The embodiments of the present application provide a communication method and apparatus, which can achieve a communication effect of almost zero packet loss in a scenario where technology is used for communication between network devices, thereby providing a higher service quality for the business.
为方便理解,首先对FlexE的相关内容进行介绍。To facilitate understanding, we first introduce the relevant content of FlexE.
FlexE group:每个FlexE group包括的一个或多个PHY。当包括多个PHY时,所述多个PHY在物理上是独立的。应用了FlexE技术的网络设备可以通过PHY的编号来标识一个FlexE group中包含哪些PHY,来实现多个PHY的逻辑捆绑。例如,每个PHY的编号可用1~254之间的一个数字来标识,0和255为保留数字。一个PHY的编号可对应网络设备上的一个接口。相邻的两个网络设备之间需采用相同的编号来标识同一个PHY。一个FlexE group中包括的每个PHY的编号不必是连续的。通常情况下,两个网络设备之间具有一个FlexE group,但本申请并不限定两个网络设备之间仅存在一个FlexE group,即两个网络设备之间也可以具有多个FlexE group。一个PHY可用于承载至少一个client,一个client可在至少一个PHY上传输。FlexE可以支持任意多个不同FlexE Client在任意一组PHY上的映射
和传输,从而实现PHY捆绑、通道化及子速率等功能。FlexE group: One or more PHYs included in each FlexE group. When multiple PHYs are included, the multiple PHYs are physically independent. Network devices that apply FlexE technology can use the PHY number to identify which PHYs are included in a FlexE group to achieve logical bundling of multiple PHYs. For example, each PHY number can be identified by a number between 1 and 254, and 0 and 255 are reserved numbers. A PHY number can correspond to an interface on a network device. The same number must be used to identify the same PHY between two adjacent network devices. The number of each PHY included in a FlexE group does not have to be continuous. Normally, there is one FlexE group between two network devices, but this application does not limit the existence of only one FlexE group between two network devices, that is, there can also be multiple FlexE groups between two network devices. A PHY can be used to carry at least one client, and a client can be transmitted on at least one PHY. FlexE can support the mapping of any number of different FlexE Clients on any group of PHYs. and transmission, thereby realizing functions such as PHY bundling, channelization and sub-rate.
FlexE Client:对应于网络的各种用户接口或带宽。FlexE Client代表在FlexE Group上指定时隙(一个时隙或多个时隙)传输的客户数据流,一个FlexE Group上可承载多个FlexE Client,一个FlexE Client可对应一个到多个用户业务数据流(也可以称为MAC Client)。FlexE client可根据带宽需求灵活配置,支持各种速率的以太网媒体接入控制(media access control,MAC)数据流(如10G、40G、n*25G数据流,甚至非标准速率数据流),例如可以通过64B/66B的编码的方式将数据流传递至FlexE shim层。通过同一FlexE group发送的客户需要共用同一时钟,且这些客户需要按照分配的时隙速率进行适配。本申请中,可以通过FlexE client(也可以被称为FlexE client接口),用于传输相应的FlexE client的业务数据流。FlexE client接口是一个逻辑接口。每个FlexE接口在逻辑上可以划分为一个或多个FlexE client接口,每个FlexE接口在时域上可以划分为多个时隙,每个FlexE client接口占用所述多个时隙中的至少一个时隙。其中:64/66B指的是数据码块包括66比特,该66比特的前两个比特为同步比特,后64比特为数据比特,在PCS层,可以通过前两个同步比特来提取64/66B。FlexE Client: corresponds to various user interfaces or bandwidths of the network. FlexE Client represents the customer data stream transmitted in a specified time slot (one time slot or multiple time slots) on the FlexE Group. One FlexE Group can carry multiple FlexE Clients, and one FlexE Client can correspond to one to multiple user service data streams (also called MAC Client). FlexE client can be flexibly configured according to bandwidth requirements, supporting Ethernet media access control (MAC) data streams of various rates (such as 10G, 40G, n*25G data streams, and even non-standard rate data streams). For example, the data stream can be passed to the FlexE shim layer through 64B/66B encoding. Customers sent through the same FlexE group need to share the same clock, and these customers need to adapt according to the allocated time slot rate. In this application, a FlexE client (also called a FlexE client interface) can be used to transmit the service data stream of the corresponding FlexE client. The FlexE client interface is a logical interface. Each FlexE interface can be logically divided into one or more FlexE client interfaces, each FlexE interface can be divided into multiple time slots in the time domain, and each FlexE client interface occupies at least one time slot of the multiple time slots. Among them: 64/66B means that the data code block includes 66 bits, the first two bits of the 66 bits are synchronization bits, and the last 64 bits are data bits. At the PCS layer, 64/66B can be extracted through the first two synchronization bits.
FlexE shim:作为插入传统以太架构的MAC与PHY(PCS子层)中间的一个额外逻辑层,是基于时隙分发机制实现FlexE技术的核心架构。对于发送端而言,FlexE shim的主要作用是将数据封装至预先划分的时隙(slot)中。然后,根据FlexE时隙表,将划分好的各时隙映射至FlexE group中的PHY上进行传输。其中,每个时隙映射于FlexE group中的一个PHY。以100GE PHY为例,FlexE Shim层可以把FlexE Group中的每个100GE PHY划分为20个时隙(slot)的数据承载通道,每个slot对应的带宽为5Gbps。PHY每发送1023*20Slot的64/66B数据就会插入一个FlexE开销(Overhead,OH),从而告知接收端如何对接收到的数据进行解析。FlexE shim: As an additional logical layer inserted between the MAC and PHY (PCS sublayer) of the traditional Ethernet architecture, it is the core architecture for implementing FlexE technology based on the time slot distribution mechanism. For the transmitter, the main function of FlexE shim is to encapsulate data into pre-divided time slots. Then, according to the FlexE time slot table, the divided time slots are mapped to the PHY in the FlexE group for transmission. Among them, each time slot is mapped to a PHY in the FlexE group. Taking 100GE PHY as an example, the FlexE Shim layer can divide each 100GE PHY in the FlexE Group into a data bearer channel of 20 time slots, and the bandwidth corresponding to each slot is 5Gbps. Every time the PHY sends 64/66B data of 1023*20Slot, a FlexE overhead (OH) will be inserted to tell the receiver how to parse the received data.
小颗粒业务:在一些实施例中,大带宽对应的slot还可以进一步划分成多个子时隙(sub-slots),用于承载对带宽需求较小的客户业务,上述业务也被称之为小颗粒业务。举例来说,上述大带宽可以理解为小颗粒业务的服务层所对应的带宽。例如,当小颗粒业务的服务层是MTN通道层时,MTN通道层的带宽为5Gbps,将对应大带宽为5Gbps的slot按照10Mbps粒度进行进一步划分,划分成480个sub-slots,这480个sub-slot用于承载小颗粒业务。例如,这480个sub-slot中的第1个sub-slot、第3个sub-slot和第5个sub-slot用于承载小颗粒业务1。再比如,小颗粒业务的服务层为10GE以太网物理层时,将对应的大带宽按照更细的粒度进一步划分为多个sub-slots,用于承载小颗粒业务。由此可见,小颗粒的带宽粒度更细,小颗粒业务是指对带宽相对需求较小的业务。举例来说,电力专线业务的带宽需求为10Mbps,此时,即可利用小颗粒技术为该电力专线业务分配指定的带宽,用于承载电力专线业务的业务流量,上述电力专线业务为一种小颗粒业务。Small particle service: In some embodiments, the slot corresponding to the large bandwidth can be further divided into multiple sub-slots to carry customer services with smaller bandwidth requirements, which are also referred to as small particle services. For example, the large bandwidth can be understood as the bandwidth corresponding to the service layer of the small particle service. For example, when the service layer of the small particle service is the MTN channel layer, the bandwidth of the MTN channel layer is 5Gbps, and the slot corresponding to the large bandwidth of 5Gbps is further divided according to the granularity of 10Mbps, and divided into 480 sub-slots, which are used to carry small particle services. For example, the first sub-slot, the third sub-slot and the fifth sub-slot of the 480 sub-slots are used to carry small particle service 1. For another example, when the service layer of the small particle service is the 10GE Ethernet physical layer, the corresponding large bandwidth is further divided into multiple sub-slots according to a finer granularity to carry small particle services. It can be seen that the bandwidth granularity of small particles is finer, and small particle services refer to services with relatively small bandwidth requirements. For example, the bandwidth requirement of the power line service is 10Mbps. At this time, the small-granule technology can be used to allocate a specified bandwidth for the power line service to carry the business traffic of the power line service. The above power line service is a small-granule service.
其中,传输小颗粒业务时,对于发送端而言,在一个示例中,FlexE shim可以根据小颗粒的时隙配置将数据封装至预先划分的sub-slot中传输。对于接收端而言,FlexE shim可以根据小颗粒的时隙配置将通过该对应带宽为5Gbps的slot接收的数据恢复成原始小颗粒业务数据并继续传输。在又一个示例中,对于发送端而言,可以利用MTN通道层适配功能(MTN path adaptation function)将数据封装至对应的sub-slot中传输,对于接收端而言,可以利用MTN通道层适配功能将通过该对应带宽为5Gbps的slot接收的数据恢复成原始小颗粒业务数据并继续传输。Among them, when transmitting small-particle services, for the transmitter, in one example, FlexE shim can encapsulate the data into pre-divided sub-slots according to the small-particle time slot configuration for transmission. For the receiver, FlexE shim can restore the data received through the slot with a corresponding bandwidth of 5 Gbps to the original small-particle service data according to the small-particle time slot configuration and continue to transmit. In another example, for the transmitter, the MTN path adaptation function can be used to encapsulate the data into the corresponding sub-slot for transmission, and for the receiver, the MTN path adaptation function can be used to restore the data received through the slot with a corresponding bandwidth of 5 Gbps to the original small-particle service data and continue to transmit.
在一个示例中,小颗粒业务数据可以携带在小颗粒单元(fine granularity unit,FGU)基帧中。在一个示例中,小颗粒单元,也可以被称为fgBU,在本申请实施例中,二者可以交替使用。In one example, the small granularity service data may be carried in a fine granularity unit (FGU) base frame. In one example, the small granularity unit may also be referred to as an fgBU, and in the embodiment of the present application, the two may be used interchangeably.
相对应的,大带宽对应的slot未划分成多个子时隙的场景中,大带宽对应的slot所承载的业务可以被称为大颗粒业务。Correspondingly, in a scenario where the slot corresponding to the large bandwidth is not divided into multiple sub-time slots, the service carried by the slot corresponding to the large bandwidth can be called a large-granularity service.
关于FlexE OH插入方式以及开销帧的结构,一种具体的实现方式中,可以参考电气与光互联网论坛(optical internetworking forum,OIF)关于FlexE的相关描述部分,此处不做详述。Regarding the FlexE OH insertion method and the structure of the overhead frame, for a specific implementation method, please refer to the relevant description of FlexE in the Optical Internetworking Forum (OIF), which is not described in detail here.
接下来介绍一种可能的支持小颗粒技术的切片分组网(Slicing Packet Network,SPN)架构。参见图1a,该图为本申请实施例提供的一种支持小颗粒技术的SPN架构的示意图。Next, a possible slicing packet network (SPN) architecture supporting small particle technology is introduced. See Figure 1a, which is a schematic diagram of an SPN architecture supporting small particle technology provided in an embodiment of the present application.
如图1a所示,所述SPN架构包括:As shown in FIG. 1a , the SPN architecture includes:
切片分组层(slicing packet layer,SPL)、切片通道层(slicing channel layer,SCL)、切片传送层(slicing transport layer,STL)、管控一体的软件定义网络(software defined network,SDN)切片控制平面以及
超高精度事件频率同步技术。其中:Slicing packet layer (SPL), slicing channel layer (SCL), slicing transport layer (STL), and the integrated software defined network (SDN) slicing control plane. Ultra-high precision event frequency synchronization technology. Among them:
SCL包括FGU层、MTN通道(MTN path,MTNP)层和MTN段(MTN Section,MTNS)层。其中:FGU层,为小颗粒业务提供端到端的确定性低时延N*10Mbps粒度硬切片通道。FGU层是独立子层,可按需灵活选择承载于MTN通道层或者以太网物理层,换言之,FGU层的服务层可以是MTN通道层,也可以是以太网物理层。SCL includes FGU layer, MTN path (MTNP) layer and MTN section (MTNS) layer. Among them: FGU layer provides end-to-end deterministic low-latency N*10Mbps granularity hard slice channel for small-granular services. FGU layer is an independent sublayer and can be flexibly selected to be carried on MTN path layer or Ethernet physical layer as needed. In other words, the service layer of FGU layer can be MTN path layer or Ethernet physical layer.
STL在原有高速以太网物理层接口的基础上,新增了10GE以太网物理层接口。10GE以太网物理层可以应用于客户终端设备(customer-premises equipment,CPE)场景中,直接承载FGU层。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-premises equipment (CPE) scenarios and directly carry the FGU layer.
接下来,以MTN通道层承载小颗粒业务为例,从发送侧行为和接收侧行为的角度,对所述MTNS和MTNP进行介绍。Next, taking the MTN channel layer carrying small-granularity services as an example, the MTNS and MTNP are introduced from the perspectives of the sending side behavior and the receiving side behavior.
首先对MTNS的发送侧行为和接收侧行为进行介绍。First, the sending side behavior and the receiving side behavior of MTNS are introduced.
在一个示例中,以100GBASE-R PHY为例,MTNS提供点到点的连接,负责将用以太网PHY连接起来的相邻节点进行时隙化处理,并提供绑定、子速率、通道化的功能。MTNS是双向对称的,此处以一个数据传输方向为例进行说明。In one example, taking 100GBASE-R PHY as an example, MTNS provides point-to-point connection, is responsible for time slotting adjacent nodes connected by Ethernet PHY, and provides bonding, sub-rate, and channelization functions. MTNS is bidirectional and symmetrical, and here we take one data transmission direction as an example to illustrate.
发送侧,MTNS在66B码块序列中插入一种特殊的O码块,间隔1023*20个66B码块之后插入一个D码块,每隔1023*20个66B码块之后均插入一个D码块,一共需要插入7个D码块。在插入第7个D码块之后,再间隔1023*20个码块后,插入一个特殊的O码块。如此,总共8*(1023*20+1)个码块构成了一个MTNS帧(frame)。On the sending side, MTNS inserts a special O code block into the 66B code block sequence, inserts a D code block after every 1023*20 66B code blocks, and inserts a D code block after every 1023*20 66B code blocks, for a total of 7 D code blocks. After inserting the 7th D code block, a special O code block is inserted after every 1023*20 code blocks. In this way, a total of 8*(1023*20+1) code blocks constitute an MTNS frame.
O码块加上前述7个D码块构成了MTNS帧的开销。开销上携带了指示MTNS的一些点到点链路配置信息,例如,时隙配置信息、段层组配置信息等等。The O code block plus the aforementioned 7 D code blocks constitute the overhead of the MTNS frame. The overhead carries some point-to-point link configuration information indicating MTNS, such as time slot configuration information, section layer group configuration information, and so on.
MTNS一直连续不断地按照上述帧结构向接收端发送数据。持续不断的MTNS帧等同于66B码块流,按照以太网电气与电子工程师协会(Institute of Electrical and Electronics Engineers,IEEE)802.3所定义的lower PHY layer协议转变为比特、光信号、或者其它例如电脉冲的模拟信号,从发送侧设备处发送出去。MTNS continuously sends data to the receiving end according to the above frame structure. The continuous MTNS frames are equivalent to a 66B code block stream, which is converted into bits, optical signals, or other analog signals such as electrical pulses according to the lower PHY layer protocol defined by the Ethernet Institute of Electrical and Electronics Engineers (IEEE) 802.3, and sent out from the sending side device.
接收侧,首先按照以太网底层PHY(Ethernet lower PHY layer)的协议,将接收到的信号(例如比特、光信号、或者其它例如电脉冲的模拟信号)通过识别O码块,锁定了MTNS帧的帧头,依照固定计数就可以知道下一个开销码块出现在1023*20个码块之后。相应的,接收侧根据O码块,就可以确定各个时隙对应的数据在接收到的信号中的位置。On the receiving side, first, according to the Ethernet lower PHY layer protocol, the received signal (such as bits, optical signals, or other analog signals such as electrical pulses) is identified by the O code block, and the frame header of the MTNS frame is locked. According to the fixed count, it can be known that the next overhead code block appears after 1023*20 code blocks. Correspondingly, the receiving side can determine the position of the data corresponding to each time slot in the received signal based on the O code block.
MTNS只能提供点到点的连接,而MTNP负责提供从网络入口到网络出口的“端到端通道连接”,MTNP提供端到端的刚性硬管道连接,提供管理维护和保护(OAM and protection,OAMP)功能。一种关于MTNP的典型组网可以参考图1b所示,图1b为本申请实施例提供的一种网络架构示意图。MTNS can only provide point-to-point connection, while MTNP is responsible for providing "end-to-end channel connection" from network inlet to network outlet. MTNP provides end-to-end rigid hard pipe connection and provides OAM and protection (OAMP) functions. A typical networking of MTNP can be referred to as shown in FIG1b, which is a schematic diagram of a network architecture provided in an embodiment of the present application.
接下来结合图1b介绍MTNP的发送侧行为和接收侧行为。Next, the sending side behavior and the receiving side behavior of MTNP are introduced in conjunction with Figure 1b.
如图1b所示,提供者边缘(provider edge,PE)1和PE2之间包括端到端的MTNP,PE1和PE2之间包括点到点的MTNS。As shown in Figure 1b, there is an end-to-end MTNP between provider edge (PE) 1 and PE2, and a point-to-point MTNS between PE1 and PE2.
在PE1的网络侧接口(network to network interface,NNI)侧,MTNP层从MAC层中获取客户信号,该客户信号可以是MAC frame。此处提及的MAC可以是MAC层的处理模块。MTNP层获得MAC frame之后,将MAC frame编码成一串64/66B码块序列。具体的,每个MAC frame会被编码成由起始码块(S码块)和结束码块(即T码块)所界定的一串66B码块序列,一连串的MAC frame序列就会被编码成一连串的66B码块序列。On the network-to-network interface (NNI) side of PE1, the MTNP layer obtains the client signal from the MAC layer, and the client signal may be a MAC frame. The MAC mentioned here may be a processing module of the MAC layer. After obtaining the MAC frame, the MTNP layer encodes the MAC frame into a series of 64/66B code block sequences. Specifically, each MAC frame will be 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 will be encoded into a series of 66B code block sequences.
在一个示例中,如果没有有效的MAC frame等待发送,那么MTNP会用I码块填充所述66B码块,从而保证MTNP的硬管道时时刻刻都有数据发送。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 to ensure that the MTNP hard pipe has data to send at all times.
P节点的接收侧,首先按照上述所述的MTNS的接收侧行为,识别出MTNS帧。随后,根据预先的配置,从指定MTNS时隙中将MTNP数据恢复。P节点接下来执行MTNP转发。此处需要说明的是,MTNP转发与IP转发以及MAC bridge转发的本质区别在于:MTNP转发独占设备转发资源,不支持统计复用,网络节点(例如P节点)的入口和出口的都需要配置一样数量的MTNS时隙。The receiving side of the P node first identifies the MTNS frame according to the receiving side behavior of MTNS described above. Then, according to the pre-configuration, the MTNP data is restored from the specified MTNS time slot. The P node then performs MTNP forwarding. It should be noted here that the essential difference between MTNP forwarding and IP forwarding and MAC bridge forwarding is that MTNP forwarding exclusively occupies device forwarding resources, does not support statistical multiplexing, and the inlet and outlet of the network node (such as the P node) need to be configured with the same number of MTNS time slots.
如上所述,在一些实施例中,大带宽对应的slot还可以进一步划分成多个sub-slot,用于承载小颗粒业务。例如,将对应带宽为5Gbps的slot按照10Mbps粒度进行进一步划分,划分成480个sub-slot,这
480个sub-slot用于承载小颗粒业务。对于这种情况,MTN FGU通过层次化的方式在5Gbps的MTNP中,可以进一步划分出480个10Mbps的时隙。在这种场景下,MTNP和MTN FGU是可以解耦的,此时,MTNP作为MTN FGU的服务层。在一个示例中,所述fg-BU可以包括FGU基帧开销和FGU基帧净荷。其中,所述FGU基帧开销可以用于承载小颗粒的时隙信息,所述FGU基帧净荷用于承载所述小颗粒业务数据。其中,小颗粒的时隙信息,可以是sub-slot与sub-client之间的映射关系。其中,sub-client与FlexE client类似,也对应于网络的各种用户接口或带宽。与FlexE client的区别在于:sub-client代表在sub-slot上传输的客户数据流,一个sub-client可对应一个或者多个sub-slot。As described above, in some embodiments, the slot corresponding to the large bandwidth can be further divided into multiple sub-slots for carrying small-granular services. For example, the slot corresponding to the bandwidth of 5 Gbps is further divided into 480 sub-slots according to the granularity of 10 Mbps. 480 sub-slots are used to carry small-particle services. In this case, MTN FGU can further divide 480 10Mbps time slots in the 5Gbps MTNP in a hierarchical manner. In this scenario, MTNP and MTN FGU can be decoupled, and at this time, MTNP serves as the service layer of MTN FGU. In an example, the fg-BU may include an FGU base frame overhead and an FGU base frame payload. Among them, the FGU base frame overhead can be used to carry small-particle time slot information, and the FGU base frame payload is used to carry the small-particle service data. Among them, the small-particle time slot information can be a mapping relationship between a sub-slot and a sub-client. Among them, the sub-client is similar to the FlexE client and also corresponds to various user interfaces or bandwidths of the network. The difference from the FlexE client is that the sub-client represents the customer data stream transmitted on the sub-slot, and a sub-client can correspond to one or more sub-slots.
对于将对应带宽为5Gbps的slot按照10Mbps粒度进行进一步划分的场景,在一个示例中,一个FGU基帧可以包括24个子时隙,每个子时隙包括65字节,每个子时隙可以承载8个65比特的码块。换言之,前述基帧净荷120可以包括65*24=1560字节。20个FGU基帧组成一个复帧,复帧内提供24×20=480个子时隙。对于PE1的NNI发送侧,MTN FGU层与MTNP一样,先将MAC frame客户信号编码为66B码块序列,然后插入OAM码块。此时需要说明的是,MTN FGU层中插入的是小颗粒MTNP(fgMTNP)的OAM码块,而不是MTNP的OAM码块。随后,一连串包含了fgMTNP OAM码块的66B码块序列映射进入fg-BU中根据预先配置指定的10Mbps时隙中。For the scenario where the slot corresponding to the bandwidth of 5Gbps is further divided according to the granularity of 10Mbps, in one example, an FGU base frame may include 24 sub-timeslots, each sub-timeslot includes 65 bytes, and each sub-timeslot can carry 8 65-bit code blocks. In other words, the aforementioned base frame payload 120 may include 65*24=1560 bytes. 20 FGU base frames form a multiframe, and 24×20=480 sub-timeslots are provided in the multiframe. For the NNI sending side of PE1, the MTN FGU layer, like the MTNP, first encodes the MAC frame client signal into a 66B code block sequence, and then inserts the OAM code block. It should be noted that the OAM code block of the small-granular MTNP (fgMTNP) is inserted in the MTN FGU layer, not the OAM code block of the MTNP. Subsequently, a series of 66B code block sequences containing fgMTNP OAM code blocks are mapped into the 10Mbps time slot specified in the fg-BU according to the pre-configuration.
fgBU序列本身实际是一串66B码块,可以等效为MTNP的客户信号,在插入MTNP OAM码块后,按照上述描述的MTNS发送侧的行为,映射进入MTNS指定的时隙中。The fgBU sequence itself is actually a string of 66B code blocks, which can be equivalent to the client signal of MTNP. After inserting the MTNP OAM code block, it is mapped into the time slot specified by MTNS according to the behavior of the MTNS sending side described above.
P节点的接收侧,按照上述所述的MTNP的接收侧的行为,将MTNP信号恢复,随后将MTNP中的OAM码块提取出来。P节点的接收侧恢复MTNP信号之后,可以通过搜索S码块的方式,完成fg-BU的定帧。The receiving side of the P node recovers the MTNP signal according to the above-mentioned 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, it can complete the framing of the fg-BU by searching the S code block.
P节点执行fgMTNP转发,fgMTNP转发与MTNP转发一样,都是TDM转发,独占设备转发资源,不支持统计复用。P节点不会终结fgMTNP的OAM码块。The P node performs fgMTNP forwarding. fgMTNP forwarding is the same as MTNP forwarding, which is TDM forwarding, occupies the device forwarding resources exclusively, and does not support statistical multiplexing. The P node does not terminate the OAM code block of fgMTNP.
P节点的发送侧行为是P节点接收侧行为的逆过程,此处不再详细说明。另外,PE2节点的接收侧行为是PE1节点发送侧行为的逆过程,此次不做详细说明。The sending side behavior of the P node is the reverse process of the receiving side behavior of the P node, which will not be described in detail here. In addition, the receiving side behavior of the PE2 node is the reverse process of the sending side behavior of the PE1 node, which will not be described in detail this time.
关于图1a所示的SPN架构中的其它内容,可以参考中国移动SPN小颗粒白皮书中的相关描述,此处不做详细描述。For other contents in the SPN architecture shown in Figure 1a, please refer to the relevant description in China Mobile's SPN small granule white paper, which will not be described in detail here.
虽然在以上描述中,采用64/66B的编码方式对MAC frame进行编码,但是以上仅作为一种可能的实现方式而示出,对MAC frame进行编码所采用的编码技术不限于以上所述的64/65B。例如,也可以采用64/65B的编码方式对MAC frame进行编码;又如,也可以采用256/257B的编码方式对MAC frame进行编码,等等,此处不一一列举说明。Although in the above description, the MAC frame is encoded by using the 64/66B encoding method, the above is only shown as a possible implementation method, and the encoding technology used to encode the MAC frame is not limited to the 64/65B described above. For example, the MAC frame can also be encoded by using the 64/65B encoding method; for another example, the MAC frame can also be encoded by using the 256/257B encoding method, and so on, which are not listed here one by one.
目前,为了提升FlexE技术的通信质量,尽可能减少丢包率从而为业务提供更高的服务质量,可以为点到点的SPN以太硬专线实现单向或者双向的路径保护。在该保护方案中,可以根据切片通道层OAM对SPN channel层进行通断检测,其中,SPN Channel OAM可以采用替换Idle码块的机制实现速率适配,固定周期OAM在T+ΔT时刻内定期发送,OAM在需要发送且有Idle码块的位置进行发送。其中:T为SPN Channel OAM的发送周期。发送SPN Channel OAM之后,若在3个检测周期没有收到对端针对该SPN Channel OAM反馈的消息,则可以认为链路中断,从而将业务切换至备份路径上传输,保持业务正常运行。At present, in order to improve the communication quality of FlexE technology, reduce the packet loss rate as much as possible and provide higher service quality for the business, unidirectional or bidirectional path protection can be implemented for the point-to-point SPN Ethernet hard dedicated line. In this protection scheme, the SPN channel layer can be detected for on-off according to the slice channel layer OAM. Among them, SPN Channel OAM can use the mechanism of replacing Idle code blocks to achieve rate adaptation. Fixed-period OAM is sent regularly within T+ΔT, and OAM is sent at the location where it needs to be sent and there is an Idle code block. Among them: T is the sending period of SPN Channel OAM. After sending SPN Channel OAM, if no feedback message is received from the other end for the SPN Channel OAM within 3 detection cycles, it can be considered that the link is interrupted, so the business is switched to the backup path for transmission to keep the business running normally.
但是,利用该保护方案,由于从确定链路中断到将业务切换至备份路径上传输需要一定的切换时间,在该切换时间内,业务发生了中断。However, with this protection solution, since it takes a certain switching time from determining that the link is interrupted to switching the service to the backup path for transmission, the service is interrupted during the switching time.
鉴于此,本申请实施例提供了一种通信方法及装置,可以在网络设备间采用技术进行通信的场景下,达到几乎零丢包的通信效果,从而为业务提供更高的服务质量。In view of this, the embodiments of the present application provide a communication method and apparatus, which can achieve a communication effect with almost zero packet loss in a scenario where technology is used for communication between network devices, thereby providing higher service quality for the business.
参见图2,该图为本申请实施例提供的一种应用场景示意图。在图2所示的场景中,运营商边缘设备(provider edge,PE)1和PE2之间可以通过FlexE技术进行通信。在一个示例中,PE1和PE2之间可以包括多个FlexE通道,为方便理解,图2示出了2个FlexE通道,分别为FlexE channel-1和FlexE channel-2。其中,FlexE channel-1中包括运营商骨干设备(provider,P)1,PE1可以通过P1和PE2通信;FlexE channel-1中包括P2,PE1可以通过P2和PE2通信。See Figure 2, which is a schematic diagram of an application scenario provided by an embodiment of the present application. In the scenario shown in Figure 2, the provider edge device (provider edge, PE) 1 and PE2 can communicate through FlexE technology. In an example, multiple FlexE channels can be included between PE1 and PE2. For ease of understanding, Figure 2 shows two FlexE channels, namely FlexE channel-1 and FlexE channel-2. Among them, FlexE channel-1 includes the provider backbone device (provider, P) 1, and PE1 can communicate with PE2 through P1; FlexE channel-1 includes P2, and PE1 can communicate with PE2 through P2.
在一个示例中,FlexE channel-1和FlexE channel-2可以是大颗粒通道,用于承载大颗粒业务。在又
一个示例中,FlexE channel-1和FlexE channel-2可以是小颗粒通道,用于承载小颗粒业务。In an example, FlexE channel-1 and FlexE channel-2 may be large-granularity channels for carrying large-granularity services. In an example, FlexE channel-1 and FlexE channel-2 may be small-granularity channels used to carry small-granularity services.
接下来,结合图2所示的场景,对本申请实施例提供的通信方法进行介绍。Next, in conjunction with the scenario shown in FIG. 2 , the communication method provided in an embodiment of the present application is introduced.
参见图3,该图为本申请实施例提供的一种通信方法的信令交互图,在图3所示的方法100中,第一通信装置例如可以对应图2所示的PE1,第二通信装置例如可以对应图2所示的PE2。方法100中的第一FlexE通道,可以对应图2所示的FlexE channel-1,方法100中的第二FlexE通道,可以对应图2所示的FlexE channel-2。Referring to FIG. 3 , which is a signaling interaction diagram of a communication method provided in an embodiment of the present application, in the method 100 shown in FIG. 3 , the first communication device may correspond to PE1 shown in FIG. 2 , and the second communication device may correspond to PE2 shown in FIG. 2 . The first FlexE channel in the method 100 may correspond to FlexE channel-1 shown in FIG. 2 , and the second FlexE channel in the method 100 may correspond to FlexE channel-2 shown in FIG. 2 .
本申请实施例中提及的通信装置,可以是交换机、路由器等网络设备,也可以是网络设备上的一部分组件,例如是网络设备上的单板,线卡,还可以是网络设备上的一个功能模块,还可以是用于实现本申请方法的芯片,本申请实施例不做具体限定。通信装置之间例如可以但不限于通过以太网线或光缆直接连接。当通信装置为芯片时,本申请中用于执行收发操作的例如可以包括芯片的接口电路,用于执行处理操作的例如可以包括芯片中具有处理功能的电路。The communication device mentioned in the embodiments of the present application may be a network device such as a switch or a router, or may be a component of a network device, such as a single board or a line card on the network device, or may be a functional module on the network device, or may be a chip for implementing the method of the present application, which is not specifically limited in the embodiments of the present application. The communication devices may be directly connected, for example, via an Ethernet cable or an optical cable, but not limited thereto. When the communication device is a chip, the device used to perform the transceiver operation in the present application may include, for example, an interface circuit of the chip, and the device used to perform the processing operation may include, for example, a circuit with a processing function in the chip.
在本申请实施例中,第一通信装置对应PE1,可以理解成第一通信装置是所述PE1本身,也可以理解成第一通信装置是PE1上的一部分组件。类似的,第二通信装置对应PE2,可以理解成第二通信装置是所述PE2本身,也可以理解成第二通信装置是PE2上的一部分组件。In the embodiment of the present application, the first communication device corresponds to PE1, which can be understood as the first communication device being the PE1 itself, or as a component of the PE1. Similarly, the second communication device corresponds to PE2, which can be understood as the second communication device being the PE2 itself, or as a component of the PE2.
本申请实施例中提及的码块流,可以包括多个码块,码块流也可以被称为“码流”。The code block stream mentioned in the embodiments of the present application may include multiple code blocks, and the code block stream may also be referred to as a "code stream".
图3所示的方法100,例如可以包括如下S101-S104。The method 100 shown in FIG. 3 , for example, may include the following S101 - S104 .
S101:第一通信装置通过第一通信装置和第二通信装置之间的第一FlexE通道向所述第二通信装置发送第一灵活以太FlexE码块流,所述第一FlexE码块流包括第一序列号,所述第一序列号标识所述第一FlexE码块流的发送顺序。S101: A 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, where the first FlexE code block stream includes a first sequence number, where the first sequence number identifies a sending order of the first FlexE code block stream.
S102:第一通信装置通过所述第一通信装置和所述第二通信装置之间的第二FlexE通道向所述第二通信装置发送所述第一FlexE码块流。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.
在一个示例中,所述第一通信装置可以获取(例如生成)所述第一FlexE码块流,并分别通过第一FlexE通道和第二FlexE通道向第二通信装置发送所述FlexE码块流。在一个示例中,所述第一通信装置获取所述第一FlexE码块流之后,可以对所述第一FlexE码块流进行复制,得到多份第一FlexE码块流。例如,可以对所述第一FlexE码块流进行复制,得到两份第一FlexE码块流,其中一份第一FlexE码块流通过第一FlexE通道向所述第二通信装置发送,另外一份第一FlexE码块流通过第二FlexE通道向所述第二通信装置发送。在一个示例中,对所述第一FlexE码块流进行复制,可以得到所述第一FlexE码块流的镜像。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 the second communication device through the first FlexE channel and the second FlexE channel, respectively. In one example, after the first communication device obtains the first FlexE code block stream, the first FlexE code block stream may be copied to obtain multiple first FlexE code block streams. For example, the first FlexE code block stream may be copied to obtain two first FlexE code block streams, one of which is sent to the second communication device through the first FlexE channel, and the other is sent to the second communication device through the second FlexE channel. In one example, by copying the first FlexE code block stream, a mirror image of the first FlexE code block stream may be obtained.
在又一个示例中,所述第一通信装置可以生成多份第一FlexE码块流。例如,可以生成两份第一FlexE码块流,其中一份第一FlexE码块流通过第一FlexE通道向所述第二通信装置发送,另外一份第一FlexE码块流通过第二FlexE通道向所述第二通信装置发送。In another example, the first communication device may generate multiple first FlexE code block streams. For example, two first FlexE code block streams may be generated, one of which is sent to the second communication device via a first FlexE channel, and the other is sent to the second communication device via a second FlexE channel.
在本申请实施例中,当所述第一FlexE通道和所述第二FlexE通道为大颗粒通道时,所述第一FlexE码块流用于承载大颗粒业务,当所述第一FlexE通道和所述第二FlexE通道为小颗粒通道时,所述第一FlexE码块流用于承载小颗粒业务。In an embodiment of the present application, when the first FlexE channel and the second FlexE channel are large-granule channels, the first FlexE code block stream is used to carry large-granule services; when the first FlexE channel and the second FlexE channel are small-granule channels, the first FlexE code block stream is used to carry small-granule services.
在一个示例中,所述第一FlexE码块流包括的码块属于第一client。当所述第一FlexE码块流承载小颗粒业务时,所述第一FlexE码块流包括的码块属于第一sub-client,当所述第一FlexE码块流承载大颗粒业务时,所述第一FlexE码块流包括的码块属于第一FlexE client。所述第一序列号标识所述第一FlexE码块流的发送顺序,可以理解为所述第一序列号标识所述第一FlexE码块流在相应的client中的发送顺序。In one example, the code blocks included in the first FlexE code block stream belong to the first client. When the first FlexE code block stream carries a small-granule service, the code blocks included in the first FlexE code block stream belong to the first sub-client, and when the first FlexE code block stream carries a large-granule service, the code blocks included in the first FlexE code block stream belong to the first FlexE client. The first sequence number identifies the sending order of the first FlexE code block stream, which can be understood as the first sequence number identifying the sending order of the first FlexE code block stream in the corresponding client.
在本申请实施例中,所述第一FlexE码块流所承载的业务,可以是CBR业务,也可以是VBR业务,本申请实施例不做具体限定。在一个示例中,VBR业务也可以被称为以太-CBR业务。在一些场景中,VBR业务也可以直接理解为以太业务。在一个示例中,当所述第一FlexE码块流所承载的业务为VBR业务时,所述第一FlexE码块流中还包括切片类型标识和切片长度信息,所述切片类型标识用于标识所述第一FlexE码块流对应的切片类型,所述切片类型包括:头切片、中间切片或者尾切片,所述切片长度信息用于标识承载所述第一FlexE码块流中净荷部分的有效数据长度。In an embodiment of the present application, the service carried by the first FlexE code block stream may be a CBR service or a VBR service, which is not specifically limited in the embodiment of the present application. In one example, a VBR service may also be referred to as an Ethernet-CBR service. In some scenarios, a VBR service may also be directly understood as an Ethernet service. In an example, when the service carried by the first FlexE code block stream is a VBR service, the first FlexE code block stream also includes a slice type identifier and slice length information, and the slice type identifier is used to identify the slice type corresponding to the first FlexE code block stream, and the slice type includes: a head slice, a middle slice or a tail slice, and the slice length information is used to identify the effective data length of the payload part in the first FlexE code block stream.
在一个示例中,所述第一FlexE码块流可以是编码之后得到的码块流。在一个示例中,所述第一
FlexE码块流可以是对业务流进行编码之后得到的码块流。在又一个示例中,可以首先采用容器对业务流进行封装,得到容器,而后,虽所述容器进行编码,从而得到所述第一FlexE码块流。In one example, the first FlexE code block stream may be a code block stream obtained after encoding. The FlexE code block stream may be a code block stream obtained after encoding the service flow. In another example, the service flow may be first encapsulated using a container to obtain a container, and then the container is encoded to obtain the first FlexE code block stream.
在一个示例中,当所述第一FlexE通道和所述第二FlexE通道为大颗粒通道时,对所述容器进行编码之后,可以得到FlexE OH和FlexE净荷。对于这种情况,所述第一FlexE码块流可以包括FlexE OH和FlexE净荷,对于这种情况,所述容器可以通过所述FlexE净荷承载。In one example, when the first FlexE channel and the second FlexE channel are large-granular channels, after encoding the container, a FlexE OH and a FlexE payload may be obtained. In this case, the first FlexE code block stream may include a FlexE OH and a FlexE payload, and in this case, the container may be carried by the FlexE payload.
在又一个示例中,当所述第一FlexE通道和所述第二FlexE通道为小颗粒通道时,对所述容器进行编码之后,可以得到fgBU,fgBU可以包括fgBU OH和fgBU净荷。对于这种情况,所述第一FlexE码块流可以包括fgBUOH和fgBU净荷,所述容器可以通过所述fgBU净荷承载。In another example, when the first FlexE channel and the second FlexE channel are small particle channels, after encoding the container, fgBU can be obtained, and fgBU can include fgBU OH and fgBU payload. In this case, the first FlexE code block stream can include fgBU OH and fgBU payload, and the container can be carried by the fgBU payload.
在本申请实施例中,容器是本申请提供的一种封装结构,用于对业务流进行封装。In the embodiment of the present application, the container is a packaging structure provided by the present application, which is used to encapsulate the business flow.
关于所述容器,其结构可以参考图4a进行理解,图4a为本申请实施例提供的一种容器的结构示意图。如图4a所示:所述容器可以包括容器开销和容器净荷,所述容器开销可以用于承载所述第一序列号。例如,所述容器开销中可以包括序列号字段,该序列号字段用于承载所述第一序列号。所述容器净荷可以用于承载业务流。在所述第一FlexE通道和所述第二FlexE通道为大颗粒通道时,所述容器净荷可以用于承载多个client对应的业务流;在所述第一FlexE通道和所述第二FlexE通道为小颗粒通道时,所述容器净荷可以用于承载多个sub-client对应的业务流。Regarding the container, its structure can be understood with reference to Figure 4a, which is a schematic diagram of the structure of a container provided in an embodiment of the present application. As shown in Figure 4a: the container may include a container overhead and a container payload, and the container overhead may be used to carry the first serial number. For example, the container overhead may include a serial number field, and the serial number field is used to carry the first serial number. The container payload can be used to carry business flows. When the first FlexE channel and the second FlexE channel are large-granular channels, the container payload can be used to carry business flows corresponding to multiple clients; when the first FlexE channel and the second FlexE channel are small-granular channels, the container payload can be used to carry business flows corresponding to multiple sub-clients.
在一个示例中,所述容器开销中可以包括校验信息,该校验信息用于对所述容器开销进行校验,从而保证所述容器开销的合法性,相应的,保证所述容器开销中所携带的第一序列号的准确性。作为一个示例,所述容器开销可以包括校验字字段,该校验字字段用于携带校验信息。In one example, the container overhead may include verification information, and the verification information is used to verify the container overhead, so as to ensure the legitimacy of the container overhead, and correspondingly, to ensure the accuracy of the first sequence number carried in the container overhead. As an example, the container overhead may include a check word field, and the check word field is used to carry the verification information.
在一个示例中,如图4a所示,所述容器开销除了包括序列号字段和校验字字段之外,还可以包括开销控制字段,作为一个示例,该开销控制字段可以用于指示该容器开销携带所述第一序列号。In one example, as shown in FIG. 4a , the container overhead may include an overhead control field in addition to the sequence number field and the check word field. As an example, the overhead control field may be used to indicate that the container overhead carries the first sequence number.
另外,当所述第一FlexE码块流所承载的业务为VBR业务时,所述容器开销还可以包括切片类型标识和切片长度信息。例如,所述容器开销中可以包括切片类型字段和切片长度字段,所述切片类型字段用于携带所述切片标识,所述切片长度字段用于携带所述切片长度信息。In addition, when the service carried by the first FlexE code block stream is a VBR service, the container overhead may also include a slice type identifier and slice length information. For example, the container overhead may include a slice type field and a slice length field, the slice type field is used to carry the slice identifier, and the slice length field is used to carry the slice length information.
在一个示例中,所述第一FlexE码块流可以包括O码块,所述O码块包括所述第一序列号。作为一个示例,可以定义一种新的O码块,并利用该新定义的O码块来携带所述第一序列号。在一个示例中,当利用所述O码块来携带所述第一序列号时,所述第一FlexE码块流中还可以包括第一指示信息,该第一指示信息用于指示所述O码块用于携带所述第一序列号。本申请实施例不具体限定所述第一指示信息在所述第一FlexE码块流中的携带位置。在一个示例中,可以将所述第一FlexE码块流中某一Idle码块替换成所述第一指示信息。在又一个示例中,为了避免对所述第一FlexE码块流进行过多的扩展,所述第一指示信息可以通过所述O码块的类型字段来携带。In one example, the first FlexE code block stream may include an O code block, and the O code block includes the first sequence number. As an example, a new O code block may be defined, and the newly defined O code block may be used 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 also include a first indication information, and 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 present application does not specifically limit the carrying position of the first indication information in the first FlexE code block stream. In one example, an Idle code block in the first FlexE code block stream may be replaced with the first indication information. In another example, in order to avoid excessive expansion of the first FlexE code block stream, the first indication information may be carried by the type field of the O code block.
关于所述O码块,其结构可以参考图4b,图4b为本申请实施例提供的一种O码块的结构示意图。如图4a所示,所述O码块可以包括类型(type)字段、4个值(value)字段,分别为value 1字段、value2字段、value 3字段和value 4字段。另外还包括序列号(sequence,SEQ)字段和循环冗余校验(cyclic redundancy check,CRC)字段。Regarding the O code block, its structure can refer to Figure 4b, which is a schematic diagram of the structure of an O code block provided in an embodiment of the present application. As shown in Figure 4a, the O code block may include a type field, four value fields, namely, a value 1 field, a value 2 field, a value 3 field, and a value 4 field. In addition, it also includes a sequence number (SEQ) field and a cyclic redundancy check (CRC) field.
在一个示例中,所述type字段可以用于携带第一指示信息,所述4个value字段中的一个或者多个value字段用于携带所述第一序列号。例如,value 1字段、value 2字段和value 3字段这3个value字段用于携带第一序列号。In one example, the type field may be used to carry the first indication information, and one or more of the four value fields are used to carry the first serial number. For example, the three value fields, value 1 field, value 2 field, and value 3 field, are used to carry the first serial number.
其它字段例如SEQ字段以及预留字段,其值可以根据实际情况设置,此处不做具体限定。例如,value 3字段可以用于携带该O码块对应的校验信息。SEQ字段的值可以为默认值。The values of other fields such as the SEQ field and the reserved field can be set according to the actual situation and are not specifically limited here. For example, the value 3 field can be used to carry the check information corresponding to the O code block. The value of the SEQ field can be the default value.
在一个示例中,所述第一FlexE码块流可以包括由一个S码块、至少一个D码块、和一个结束T码块所组成的SDT码块序列,所述SDT码块序列包括所述第一序列号。作为一个示例,可以新定义一种SDT码块序列,并利用该新定义的SDT码块序列来携带所述第一序列号。在一个示例中,当利用所述SDT码块序列来携带所述第一序列号时,所述第一FlexE码块流中还可以包括第二指示信息,该第二指示信息用于指示所述SDT码块序列中携带所述第一序列号。本申请实施例不具体限定所述第二指示信息在所述第一FlexE码块流中的携带位置。在一个示例中,可以将所述第一FlexE码块流中某一Idle码块替换成所述第二指示信息。在又一个示例中,为了避免对所述第一FlexE码块流进行过多的扩展,所
述第二指示信息可以通过所述SDT码块序列的T码块来携带。作为一个示例,所述T码块可以包括控制块,该控制块用于承载所述第二指示信息。在一个具体的示例中,可以在所述控制块中定义一个字段来携带所述第二指示信息,本申请实施例不具体限定控制块中用于携带第二指示信息的字段,作为一个示例,该字段可以是魔术字字段。In one example, the first FlexE code block stream may include an SDT code block sequence consisting of an S code block, at least one D code block, and an end T code block, and the SDT code block sequence includes the first sequence number. As an example, a new SDT code block sequence may be defined, and the newly defined SDT code block sequence may be used 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 also include second indication information, and the second indication information is used to indicate that the first sequence number is carried in the SDT code block sequence. The embodiment of the present application does not specifically limit the carrying position of the second indication information in the first FlexE code block stream. In one example, an Idle code block in the first FlexE code block stream may be replaced with the second indication information. In another example, in order to avoid excessive expansion of the first FlexE code block stream, the The second indication information may be carried by the T code block of the SDT code block sequence. As an example, the T code block may include a control block, which is used to carry the second indication information. In a specific example, a field may be defined in the control block to carry the second indication information. The embodiment of the present application does not specifically limit the field in the control block used to carry the second indication information. As an example, the field may be a magic word field.
关于所述SDT码块序列,其结构可以参考图4c进行理解,图4c为本申请实施例提供的一种SDT码块序列的结构示意图。Regarding the SDT code block sequence, its structure can be understood by referring to FIG. 4c , which is a schematic diagram of the structure of an SDT code block sequence provided in an embodiment of the present application.
如图4c所示的,所述SDT码块包括S码块、D码块和T码块,所述S码块包括块(block)类型字段和前导码字段。所述D码块包括用于承载第一序列号的序列号字段,可选的,所述D码块还可以包括用于承载校验信息的校验字字段。T码块可以采用任意一种包括带控制块的T码块,例如,可以为TO码块、T1码块、T2码块、T3码块、T4码块、T5码块或者T6码块,图4c以T0码块为例进行说明。控制块中包括Magic Num字段,该魔术字字段用于携带第二指示信息。例如,该Magic Num字段的值可以取一个特殊值,用于表示第二指示信息。As shown in FIG4c, the SDT code block includes an S code block, a D code block and a T code block, and the S code block includes a block type field and a preamble field. The D code block includes a sequence number field for carrying a first sequence number, and optionally, the D code block may also include a check word field for carrying check information. The T code block may adopt 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 FIG4c takes the T0 code block as an example for explanation. The control block includes a Magic Num field, and the magic word field is used to carry the second indication information. For example, the value of the Magic Num field may take a special value to represent the second indication information.
在一个示例中,所述第一FlexE码块流可以包括前导码,该前导码用于携带所述第一序列号。如前对于图4c的描述可知,前导码是SDT码块序列中的S码块中的一部分。对于前导码,此处不再重复说明。作为一个示例,可以新定义一种新的前导码,并利用该新定义的前导码来携带所述第一序列号。在一个示例中,当利用所述前导码来携带所述第一序列号时,所述第一FlexE码块流中还可以包括第三指示信息,该第三指示信息用于指示所述SDT码块序列中携带所述第一序列号。本申请实施例不具体限定所述第三指示信息在所述第一FlexE码块流中的携带位置。在一个示例中,可以将所述第一FlexE码块流中某一Idle码块替换成所述第三指示信息。在又一个示例中,为了避免对所述第一FlexE码块流进行过多的扩展,所述第三指示信息也可以通过所述前导码所属的S码块来携带。例如,可以利用S码块中所包括的前导码的一部分字段来携带所述第一序列号,利用S码块中所包括的前导码的另外一部分字段来携带所述第三指示信息。In one example, the first FlexE code block stream may include a preamble, which is used to carry the first sequence number. As can be seen from the previous description of Figure 4c, the preamble is part of the S code block in the SDT code block sequence. For the preamble, it is not repeated here. As an example, a new preamble can be newly defined, and the newly defined preamble is used to carry the first sequence number. In one example, when the preamble is used to carry the first sequence number, the first FlexE code block stream may also include a third indication information, which is used to indicate that the first sequence number is carried in the SDT code block sequence. The embodiment of the present 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 can be replaced with the third indication information. In another example, in order to avoid excessive expansion of the first FlexE code block stream, the third indication information can also be carried by the S code block to which the preamble belongs. For example, a part of the field of the preamble included in the S code block may be used to carry the first sequence number, and another part of the field of the preamble included in the S code block may be used to carry the third indication information.
在一个示例中,当所述第一FlexE码块流用于承载小颗粒业务时,所述第一FlexE码块流包括fgBU OH和fgBU净荷。对于这种情况,在一个示例中,所述fgBU OH可以包括所述第一序列号。如前所述,所述第一FlexE码块流包括的码块属于第一client。在所述第一序列号通过fgBU OH携带的场景中,所述fgBU OH中还可以包括fg-client标识。该fg-client标识可以是第一fg-client的标识。该fg-client标识可以使得接收端基于所述fg-client,缓存从多个FlexE通道所接收到的与该fg-client标识对应的码块流。在一个示例中,fg-client也可以被称为sub-client,二者可以交替使用。In one example, when the first FlexE code block stream is used to carry a small particle service, the first FlexE code block stream includes a fgBU OH and a fgBU payload. For this case, in one example, the fgBU OH may include the first serial number. As described 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 by the fgBU OH, the fgBU OH may also include an fg-client identifier. The fg-client identifier may be an identifier of the first fg-client. The fg-client identifier may enable the receiving end to cache the code block streams corresponding to the fg-client identifier received from multiple FlexE channels based on the fg-client. In one example, fg-client may also be referred to as sub-client, and the two may be used interchangeably.
在一个示例中,当利用所述fgBU OH来携带所述第一序列号时,所述第一FlexE码块流中还可以包括第四指示信息,该第四指示信息用于指示所述fgBU OH中携带所述第一序列号。在一个示例中,所述第四指示信息可以通过所述fgBU OH中的标识字段来携带。In one example, when the fgBU OH is used to carry the first sequence number, the first FlexE code block stream may further include fourth indication information, 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.
关于所述fgBU OH,其结构可以参考图4d来理解,图4d为本申请实施例提供的一种fgBU OH的结构示意图。如图4d所示,所述fgBU OH可以包括预留字段、复帧指示(multiFrame indication,MFI)字段、flags字段和序列号字段。其中:Regarding the fgBU OH, its structure can be understood with reference to FIG. 4d, which is a schematic diagram of the structure of a fgBU OH provided in an embodiment of the present application. As shown in FIG. 4d, the fgBU OH may include a reserved field, a multiframe indication (MFI) field, a flags field, and a sequence number field. Among them:
flags字段用于携带所述第四指示信息,序列号字段用于携带第一序列号。当然,所述fgBU OH也可以包括其它字段,例如包括用于携带所述fgBU OH的校验信息的校验字字段,此处不做详细说明。The flags field is used to carry the fourth indication information, and the sequence number field is used to carry the first sequence number. Of course, the fgBU OH may also include other fields, such as a check word field for carrying the check information of the fgBU OH, which will not be described in detail here.
另外,MFI字段用于指示复帧中每个fgBU的编号,在20个fgBU组成一个复帧的场景中,MFI字段的取值范围为0-19,对于复帧中第一个fgBU,该MFI字段的值为0,对于复帧中第二个FGU基帧,该MFI字段的值为1,依此类推,对于复帧中最后一个fgBU,该MFI字段的值为19。In addition, the MFI field is used to indicate the number of each fgBU in the multiframe. In the scenario where 20 fgBUs form a multiframe, the value range of the MFI field is 0-19. For the first fgBU in the multiframe, the value of the MFI field is 0. For the second FGU base frame in the multiframe, the value of the MFI field is 1, and so on. For the last fgBU in the multiframe, the value of the MFI field is 19.
S103:第二通信装置通过所述第一FlexE通道接收第一通信装置发送的所述第一FlexE码块流。S103: The second communication device receives the first FlexE code block stream sent by the first communication device through the first FlexE channel.
S104:第二通信装置通过所述第二FlexE通道接收第一通信装置发送的所述第一FlexE码块流。S104: The second communication device receives the first FlexE code block stream sent by the first communication device through the second FlexE channel.
第一通信装置通过第一FlexE通道向第二通信装置发送第一FlexE码块流,并通过第二FlexE通道向所述第二通信装置发送所述第一FlexE码块流。相应的,第二通信装置可以通过第一FlexE通道接收第一通信装置发送的所述第一FlexE码块流,并通过第二FlexE通道接收第一通信装置发送的所述第一FlexE码块流。The first communication device sends a first FlexE code block stream to the second communication device through the first FlexE channel, and sends the first FlexE code block stream to the second communication device through the second FlexE channel. Correspondingly, the second communication device can 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.
通过以上描述可知,利用本申请实施例提供的方案,由于所述第二通信装置可以从两个FlexE通道
接收所述第一FlexE码块流,而两个FlexE通道在传输所述第一FlexE码块流时均出现故障的可能性较低,因此,第二通信装置至少可以从某一个未故障的FlexE通道接收到第一通信装置发送的第一FlexE码块流。例如,在所述第一FlexE通道故障时,第二通信装置可以从第二FlexE通道接收所述第一FlexE码块流;在所述第二FlexE通道故障时,第二通信装置可以从第一FlexE通道接收所述第一FlexE码块流。从而达到几乎零丢包的通信效果,提升了为业务提供的服务质量。由于FlexE通道可以实现业务硬隔离,因此,采用本方案,可以在实现业务硬隔离的同时,达到几乎零丢包的通信效果。From the above description, it can be seen that, using the solution provided in the embodiment of the present application, since the second communication device can The first FlexE code block stream is received, and the possibility that both FlexE channels fail when transmitting the first FlexE code block stream is low. Therefore, the second communication device can at least receive the first FlexE code block stream sent by the first communication device from a non-faulty FlexE channel. For example, when the first FlexE channel fails, the second communication device can receive the first FlexE code block stream from the second FlexE channel; when the second FlexE channel fails, the second communication device can receive the first FlexE code block stream from the first FlexE channel. Thereby, a communication effect with almost zero packet loss is achieved, and the service quality provided to the business is improved. Since the FlexE channel can achieve hard isolation of the business, the adoption of this solution can achieve a communication effect with almost zero packet loss while achieving hard isolation of the business.
在一个示例中,第一通信装置可以按照一定的周期为第一client对应的码块流添加序列号,例如以20毫秒为周期,为第一client对应的码块流添加序列号。对于这种情况,第一通信装置在执行以上方法100之后,还可以执行如下步骤A1-A3。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 milliseconds. In this case, after executing the above method 100, the first communication device may also perform the following steps A1-A3.
步骤A1:获取第二FlexE码块流,所述第二FlexE码块流包括第二序列号,所述第二序列号标识所述第二FlexE码块流的发送顺序,所述第一序列号和所述第二序列号按照预设规则顺序编号,所述第一FlexE码块流包括的码块与所述第二FlexE码块流包括的码块属于同一个客户client。Step A1: Obtain a second FlexE code block stream, the second FlexE code block stream includes a second serial number, the second serial number identifies the sending order of the second FlexE code block stream, the first serial number and the second serial number are numbered sequentially according to a preset rule, 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 client.
步骤A2:通过所述第一FlexE通道向所述第二通信装置发送所述第二FlexE码块流。Step A2: Send the second FlexE code block stream to the second communication device through the first FlexE channel.
步骤A3:通过所述第二FlexE通道向所述第二通信装置发送所述第二FlexE码块流。Step A3: Send the second FlexE code block stream to the second communication device through the second FlexE channel.
本申请实施例不具体限定按照所述预设规则顺序编号,所述预设规则可以根据实际情况确定。例如,按照所述预设规则顺序编号可以是按照固定步长顺序编号。本申请实施例不具体限定所述固定步长,所述固定步长可以为1。则假设第一序列号为1,则第二序列号为2。又如,按照所述预设规则顺序编号可以是按照可变步长顺序编号,本申请实施例不做具体限定。The embodiments of the present application do not specifically limit the sequential numbering according to the preset rule, and the preset rule can be determined according to actual conditions. For example, the sequential numbering according to the preset rule can be sequential numbering according to a fixed step length. The embodiments of the present application do not specifically limit the fixed step length, and the fixed step length can be 1. Assuming that the first sequence number is 1, the second sequence number is 2. For another example, the sequential numbering according to the preset rule can be sequential numbering according to a variable step length, which is not specifically limited in the embodiments of the present application.
关于步骤A1-A3的具体实现,可以参考以上方法100中关于S101-S102的具体实现部分,此次不做重复描述。For the specific implementation of steps A1-A3, reference may be made to the specific implementation of S101-S102 in the above method 100, which will not be repeated here.
在一个示例中,为了提升更好的服务质量,第二通信装置通过两个FlexE通道接收第一FlexE码块流之后,可以根据从两个FlexE通道接收第一FlexE码块流的时间顺序,确定进一步地的操作。作为一个示例,所述第二通信装置可以对对应接收时刻较早的FlexE通道所接收到的码块流进行转发处理,而对对应接收时刻较晚的FlexE通道所接收到的码块流不做转发处理。为了达到这一效果,在一个具体的示例中:In one example, in order to improve the quality of service, after the second communication device receives the first FlexE code block stream through two FlexE channels, it can determine further operations according to the time sequence of receiving the first FlexE code block stream from the two FlexE channels. As an example, the second communication device can forward the code block stream received by the FlexE channel with an earlier receiving time, and not forward the code block stream received by the FlexE channel with a later receiving time. In order to achieve this effect, in a specific example:
所述第二通信装置可以创建与第一FlexE通道对应的第一缓存实例,通过该第一缓存实例将通过所述第一FlexE通道接收到的所述第一FlexE码块流包括的码块缓存到第一缓存单元。作为一个具体的示例,所述第二通信装置可以在接收到第一序列号之后,将第一序列号之后接收到的属于第一client的码块流缓存到第一缓存单元。具体地,在所述第一序列号通过容器开销、O码块、SDT码流或者前导码携带的情况下,第二通信装置可以从特定的时隙接收所述第一序列号,并根据时隙映射关系,确定该时隙对应的第一client,进一步地,缓存所述的第一client的码块流。在所述第一序列号通过fg-BU OH携带的场景中,所述第二通信装置接收到所述第一序列号之后,可以进一步提取所述fg-BU OH中携带的fg-client标识,并根据时隙映射关系,确定承载该fg-client标识对应的码块流的子时隙,进一步地,将承载该fg-client标识对应的码块流的子时隙对应的码块流缓存值所述第一缓存单元。The second communication device may create a first cache instance corresponding to the first FlexE channel, and cache the code blocks included in the first FlexE code block stream received through the first FlexE channel to the first cache unit through the first cache instance. As a specific example, after receiving the first sequence number, the second communication device may cache the code block stream belonging to the first client received after the first sequence number to the first cache unit. Specifically, in the case where the first sequence number is carried by container overhead, O code block, SDT code stream or preamble, the second communication device may receive the first sequence number from a specific time slot, and determine the first client corresponding to the time slot according to the time slot mapping relationship, and further cache the code block stream of the first client. In the scenario where the first sequence number is carried by fg-BU OH, after receiving the first sequence number, the second communication device may further extract the fg-client identifier carried in the fg-BU OH, and determine the sub-time slot carrying the code block stream corresponding to the fg-client identifier according to the time slot mapping relationship, and further cache the code block stream corresponding to the sub-time slot carrying the code block stream corresponding to the fg-client identifier to the first cache unit.
类似的,所述第二通信装置可以创建与第二FlexE通道对应的第二缓存实例,通过该第二缓存实例将通过所述第二FlexE通道接收到的所述第一FlexE码块流包括的码块缓存到第二缓存单元。“第二通信装置将通过所述第二FlexE通道接收到的所述第一FlexE码块流包括的码块缓存到第二缓存单元”的具体实现,可以参考上文关于“第二通信装置将通过所述第一FlexE通道接收到的所述第一FlexE码块流包括的码块缓存到第一缓存单元”的具体实现,此处不做重复描述。Similarly, the second communication device may create a second cache instance corresponding to the second FlexE channel, and cache the code blocks included in the first FlexE code block stream received through the second FlexE channel to the second cache unit through the second cache instance. For the specific implementation of "the second communication device caches the code blocks included in the first FlexE code block stream received through the second FlexE channel to the second cache unit", please refer to the above specific implementation of "the second communication device caches the code blocks included in the first FlexE code block stream received through the first FlexE channel to the first cache unit", which will not be repeated here.
在一个示例中,第二通信装置还可以通过所述第一FlexE通道接收前述第二FlexE码块流,并将所述第二FlexE码块流包括的码块缓存到所述第一缓存单元。进一步地,提取所述第一缓存单元存储的所述第一FlexE码块流包括的码块以及第二FlexE码块流包括的码块,以执行转发处理操作。In one example, the second communication device may also receive the aforementioned second FlexE code block stream through the first FlexE channel, and cache the code blocks included in the second FlexE code block stream to the first cache 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 cache unit are extracted to perform forwarding processing operations.
如前所述,所述第二通信装置可以在接收到第一序列号之后,将第一序列号之后接收到的属于第一client的码块流缓存到第一缓存单元。在一个示例中,若第二通信装置接收到了第二序列号,则所述第一缓存单元中则包括在第一序列号和第二序列号之间接收的属于所述第一client的码块流。对于这种情况,所述第二通信装置可以提取所述在第一序列号和第二序列号之间接收的属于所述第一client的码块
流,以执行转发处理操作。此处提及的转发处理操作,可以包括转发和/或处理操作,此处提及的转发操作,例如可以是将码块流转发给下游节点,此处提及的处理操作,例如可以是恢复客户帧。在一个示例中,可以由第二通信装置的shim模块执行转发处理操作。As mentioned above, after receiving the first sequence number, the second communication device can cache the code block stream belonging to the first client received after the first sequence number to the first cache unit. In one example, if the second communication device receives the second sequence number, the first cache unit includes the code block stream belonging to the first client received between the first sequence number and the second sequence number. In this case, the second communication device can extract the code block belonging to the first client received between the first sequence number and the second sequence number. The forwarding processing operation mentioned here may include forwarding and/or processing operations. The forwarding operation mentioned here may, for example, be forwarding the code block stream to a downstream node. The processing operation mentioned here may, for example, be recovering the client frame. In one example, the forwarding processing operation may be performed by a shim module of the second communication device.
在一个示例中,第二通信装置在对在第一序列号和第二序列号之间接收的属于所述第一client的码块流执行转发处理操作之后,可以将在第一序列号和第二序列号之间接收的属于所述第一client的码块流从第一缓存单元中清除,并进一步将在第二序列号之后接收的属于所述第一client的码块流缓存至第一缓存单元。In one example, 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, the second communication device can clear the code block stream belonging to the first client received between the first sequence number and the second sequence number from the first cache unit, and further cache the code block stream belonging to the first client received after the second sequence number to the first cache unit.
在一个示例中,由于已经从第一FlexE通道接收到了第二序列号,对于这种情况,第二通信装置还可以清除所述第二缓存单元中存储的属于所述第一FlexE码块流的码块。在此场景中,即使第二通信装置尚未从第二FlexE通道接收到第二序列号,在所述第二通信装置从第二FlexE通道接收到第二序列号之前,也不再向第二缓存单元中缓存属于所述第一client的其它码块流,以避免重复缓存已经通过第一FlexE通道接收并执行转发处理操作的码块流。在一个示例中,第二通信装置可以在直至通过第二FlexE通道接收到下一序列号,则继续缓存在接收到该下一序列号之后接收到的属于所述第一client的码块流。In one example, since the second sequence number has been received from the first FlexE channel, in this case, the second communication device can also clear the code blocks belonging to the first FlexE code block stream stored in the second cache unit. In this scenario, even if the second communication device has not received the second sequence number from the second FlexE channel, before the second communication device receives the second sequence number from the second FlexE channel, other code block streams belonging to the first client are no longer cached in the second cache unit to avoid repeated caching of code block streams that have been received through the first FlexE channel and forwarding processing operations have been performed. In one example, the second communication device can continue to cache the code block stream belonging to the first client received after receiving the next sequence number until the next sequence number is received through the second FlexE channel.
在又一个示例中,第二通信装置在通过第一FlexE通道接收第一FlexE码块流之后,通过所述第一FlexE通道接收第三FlexE码块流,其中,所述第三FlexE码块流包括第三序列号。第二通信装置在通过第二FlexE通道接收第一FlexE码块流之后,通过所述第二FlexE通道接收第二FlexE码块流,所述第二FlexE码块流包括第二序列号,所述第一序列号、所述第二序列号和所述第三序列号按照预设规则顺序编号,所述第一FlexE码块流、所述第二FlexE码块流和所述第三FlexE码块流所包括的码块属于同一个客户client。对于这种情况,所述第二通信装置可以将所述第三FlexE码块流包括的码块缓存到所述第一缓存单元,并将所述第二FlexE码块流包括的码块存储到所述第二缓存单元。具体地,所述第二通信装置可以首先清除所述第一缓存单元,并进一步将在接收到所述第三序列号之后接收到的属于第一client的码块流缓存至所述第一缓存单元。所述第二通信装置可以将在接收到第一序列号之后、接收到所述第二序列号之前这一段时间内所接收到的第二FlexE码块流包括的码块存储到所述第二缓存单元。进一步地,所述第二通信装置可以提取所述第二缓存单元中存储的码块,以执行转发处理操作。In another example, after receiving the first FlexE code block stream through the first FlexE channel, the second communication device receives the third FlexE code block stream through 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, the second FlexE code block stream includes a second sequence number, the first sequence number, the second sequence number and the third sequence number are numbered in sequence according to a preset rule, and the 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 client. In this case, the second communication device can cache the code blocks included in the third FlexE code block stream to the first cache unit, and store the code blocks included in the second FlexE code block stream to the second cache unit. Specifically, the second communication device can first clear the first cache unit, and further cache the code block stream belonging to the first client received after receiving the third sequence number to the first cache unit. The second communication device may store the code blocks included in the second FlexE code block stream received within a period of time after receiving the first sequence number and before receiving the second sequence number in the second cache unit. Further, the second communication device may extract the code blocks stored in the second cache unit to perform a forwarding processing operation.
通过这种方式,即使第一FlexE通道发生了丢包,例如,第二通信装置在通过所述第一FlexE通道接收到所述第三FlexE码块流之前,所述第二通信装置未通过所述第一FlexE通道接收到携带有所述第二序列号的所述第二FlexE码块流。第二通信装置也可以通过第二FlexE通道接收到所述第二FlexE码块流,从而避免出现丢包。In this way, even if packet loss occurs in the first FlexE channel, for example, before the second communication device receives the third FlexE code block stream through the first FlexE channel, the second communication device has not received the second FlexE code block stream carrying the second sequence number through the first FlexE channel. The second communication device can also receive the second FlexE code block stream through the second FlexE channel, thereby avoiding packet loss.
另外,通过这种方式,还可以尽可能减少业务传输时延,例如,第二通信装置在通过所述第一FlexE通道接收到所述第三FlexE码块流之前,所述第二通信装置通过所述第一FlexE通道接收到携带有所述第二序列号的所述第二FlexE码块流。但是,第二通信装置通过第一FlexE通道接收第二序列号的时刻,晚于第二通信装置通过第二FlexE通道接收第二序列号的时刻。对于这种情况,第二通信装置可以对通过第二FlexE通道接收到所述第二FlexE码块流执行转发处理操作。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 channel, the second communication device receives the second FlexE code block stream carrying the second serial number through the first FlexE channel. However, the moment when the second communication device receives the second serial number through the first FlexE channel is later than the moment when the second communication device receives the second serial number through the second FlexE channel. In this case, the second communication device can perform a forwarding processing operation on the second FlexE code block stream received through the second FlexE channel.
在本申请实施例中,第一缓存单元和第二缓存单元,可以对应不同的存储器,例如,第一缓存单元为第一存储器中的缓存单元,第二缓存单元为第二存储器中的缓存单元。第一缓存单元和第二缓存单元也可以对应同一存储器,对于这种情况,所述第一缓存单元和第二缓存单元可以对应同一存储器中不重叠的两个存储空间。In the embodiment of the present application, the first cache unit and the second cache unit may correspond to different memories, for example, the first cache unit is a cache unit in the first memory, and the second cache unit is a cache unit in the second memory. The first cache unit and the second cache unit may also correspond to the same memory, in which case, the first cache unit and the second cache unit may correspond to two non-overlapping storage spaces in the same memory.
为方便理解本方案,现结合图5,对本申请实施例提供的方案进行介绍。To facilitate understanding of this solution, the solution provided in the embodiment of the present application is now introduced in conjunction with Figure 5.
在图5所示的场景中,PE1可以按照周期为第一client对应的码块流打上序列号,并且,PE1为第一client对应的码块流打上序列号的方式为:以固定步长为1顺序编号。如图5所示,第一client对应的码块流包括3个码块流,分别为码块流510、码块流520和码块流530。在一个示例中,所述码块流的序列号位于所述码块流中(例如可以通过O码、前导码等携带),PE1分别通过FlexE channel-1和FlexE channel-2向PE2发送该3个码块流。In the scenario shown in FIG5 , PE1 can mark the code block stream corresponding to the first client with a serial number according to a period, and the way in which PE1 marks the code block stream corresponding to the first client with a serial number is: sequentially numbering with a fixed step size of 1. As shown in FIG5 , the code block stream corresponding to the first client includes three code block streams, namely, code block stream 510, code block stream 520, and code block stream 530. In an example, the serial number of the code block stream is located in the code block stream (for example, it can be carried by an O code, a preamble, etc.), and PE1 sends the three code block streams to PE2 through FlexE channel-1 and FlexE channel-2 respectively.
PE2通过FlexE channel-1接收到序列号0之后,创建对应的缓存实例,并将接收到所述序列号0之后、从FlexE channel-1接收到的属于所述第一client的码块缓存至缓存单元1。After PE2 receives serial number 0 through FlexE channel-1, it creates a corresponding cache instance and caches the code blocks belonging to the first client received from FlexE channel-1 after receiving the serial number 0 into cache unit 1.
PE2通过FlexE channel-2接收到序列号0之后,创建对应的缓存实例,并将接收到所述序列号0之
后、从FlexE channel-2接收到的属于所述第一client的码块缓存至缓存单元2。After receiving the sequence number 0 through FlexE channel-2, PE2 creates a corresponding cache instance and sends the received sequence number 0 to the cache instance. Afterwards, the code blocks belonging to the first client received from FlexE channel-2 are cached in cache unit 2.
假设PE2先通过FlexE channel-1接收到序列号1,则此时,所述PE2可以清除所述缓存单元2,并提取缓存单元1中的码块以执行转发处理操作。在提取缓存单元1中的码块之后,清除缓存单元1。不难理解的是,PE2通过FlexE channel-1接收到序列号1时,缓存单元1中缓存的码块包括:码块511和码块521。Assuming that PE2 first receives sequence number 1 through FlexE channel-1, at this time, the PE2 can clear the cache unit 2 and extract the code block in the cache unit 1 to perform the forwarding processing operation. After extracting the code block in the cache unit 1, the cache unit 1 is cleared. It is not difficult to understand that when PE2 receives sequence number 1 through FlexE channel-1, the code blocks cached in the cache unit 1 include: code block 511 and code block 521.
另外,PE2继续将将接收到所述序列号1之后、从FlexE channel-1接收到的属于所述第一client的码块缓存至缓存单元1。In addition, PE2 continues to cache the code blocks belonging to the first client received from FlexE channel-1 after receiving the sequence number 1 into cache unit 1.
PE2清除清除所述缓存单元2中的码块之后,在通过FlexE channel-2接收到序列号1之前,均不向缓存单元2中缓存数据。待PE2通过FlexE channel-2接收到序列号1,则PE2继续将将接收到所述序列号1之后、从FlexE channel-2接收到的属于所述第一client的码块缓存至缓存单元2。After PE2 clears the code blocks in the cache unit 2, it does not cache data in the cache unit 2 before receiving the sequence number 1 through FlexE channel-2. When PE2 receives the sequence number 1 through FlexE channel-2, PE2 continues to cache the code blocks belonging to the first client received from FlexE channel-2 after receiving the sequence number 1 into the cache unit 2.
假设PE2先通过FlexE channel-2接收到序列号2,则此时,所述PE2可以清除所述缓存单元1,并提取缓存单元2中的码块以执行转发处理操作。在提取缓存单元2中的码块之后,清除缓存单元2。不难理解的是,PE2通过FlexE channel-2接收到序列号2时,缓存单元2中缓存的码块包括:码块522和码块531。Assuming that PE2 first receives sequence number 2 through FlexE channel-2, at this time, the PE2 can clear the cache unit 1 and extract the code block in the cache unit 2 to perform the forwarding processing operation. After extracting the code block in the cache unit 2, the cache unit 2 is cleared. It is not difficult to understand that when PE2 receives sequence number 2 through FlexE channel-2, the code blocks cached in the cache unit 2 include: code block 522 and code block 531.
图5以第一client对应的码块流包括3个码块流为例进行说明,第一client对应的码块流的数量可以远远大于3,当第一client对应的码块流的数量大于3时,PE2所执行的操作可以以图5所示的示例类推,此处不再一一详细说明。FIG5 is an illustration of an example in which the code block stream corresponding to the first client includes three code block streams. The number of code block streams corresponding to the first client may be much greater than three. When the number of code block streams corresponding to the first client is greater than three, the operations performed by PE2 may be inferred from the example shown in FIG5 , and are not described in detail one by one here.
在图5中,PE1可以相当于以上方法实施例中的第一通信装置;PE2可以相当于以上方法实施例中的第二通信装置;FlexE channel-1可以对应以上方法实施例中的第一FlexE通道;FlexE channel-2可以对应以上方法实施例中的第二FlexE通道;缓存单元1可以对应以上方法实施例中的第一缓存单元;缓存单元2可以对应以上方法实施例中的第二缓存单元。In Figure 5, PE1 can be equivalent to the first communication device in the above method embodiment; PE2 can be equivalent to the second communication device in the above method embodiment; FlexE channel-1 can correspond to the first FlexE channel in the above method embodiment; FlexE channel-2 can correspond to the second FlexE channel in the above method embodiment; cache unit 1 can correspond to the first cache unit in the above method embodiment; cache unit 2 can correspond to the second cache unit in the above method embodiment.
本申请实施例还提供了一种通信装置,参见图6,该图为本申请实施例提供的一种通信装置的结构示意图。图6所示的通信装置600,可以包括收发单元601和处理单元602。所述收发单元601用于执行接收和/或发送相关的操作;所述处理单元602用于执行接收和/或发送相关的操作之外的操作。在具体实现中,所述收发单元601可以包括接收单元和/或发送单元,接收单元用于执行接收相关的操作,发送单元用于执行发送相关的操作。The embodiment of the present application also provides a communication device, see Figure 6, which is a schematic diagram of the structure of a communication device provided in the embodiment of the present application. The communication device 600 shown in Figure 6 may include a transceiver unit 601 and a processing unit 602. The transceiver unit 601 is used to perform operations related to receiving and/or sending; the processing unit 602 is used to perform operations other than operations related to receiving and/or sending. In a specific implementation, the transceiver unit 601 may include a receiving unit and/or a sending unit, the receiving unit is used to perform operations related to receiving, and the sending unit is used to perform operations related to sending.
在一个具体的示例中,当所述通信装置600对应以上实施例提及的第一通信装置时,所述收发单元601可以包括发送单元,所述发送单元,用于通过所述第一通信装置和所述第二通信装置之间的第一FlexE通道向所述第二通信装置发送第一灵活以太FlexE码块流,所述第一FlexE码块流包括第一序列号,所述第一序列号标识所述第一FlexE码块流的发送顺序;通过所述第一通信装置和所述第二通信装置之间的第二FlexE通道向所述第二通信装置发送所述第一FlexE码块流。In a specific example, when the communication device 600 corresponds to the first communication device mentioned in the above embodiment, the transceiver unit 601 may include a sending unit, and the sending unit is used to send 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, and the first FlexE code block stream includes a first sequence number, and the first sequence number identifies the sending order of the first FlexE code block stream; 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.
在一种可能的实现方式中,所述第一FlexE通道和所述第二FlexE通道均为FlexE小颗粒通道。In a possible implementation, the first FlexE channel and the second FlexE channel are both FlexE small particle channels.
在一种可能的实现方式中,所述第一FlexE通道和所述第二FlexE通道均为FlexE大颗粒通道。In a possible implementation, the first FlexE channel and the second FlexE channel are both FlexE large particle channels.
在一种可能的实现方式中,所述第一FlexE码块流是对容器进行编码得到的FlexE码块流,所述容器包括容器开销和容器净荷,所述容器开销包括所述第一序列号,所述容器净荷承载业务数据。In a possible implementation, the first FlexE code block stream is a FlexE code block stream obtained by encoding a container, 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 also includes verification information, and the verification information is used to verify the container overhead.
在一种可能的实现方式中,所述第一FlexE码块流承载小颗粒业务,所述第一FlexE码块流包括细粒度基本单元开销fgBU OH和fgBU净荷,所述fgBU净荷包括所述容器。In one possible implementation, the first FlexE code block stream carries a small-grained service, and the first FlexE code block stream includes a fine-grained basic unit overhead fgBU OH and an fgBU payload, and the fgBU payload includes the container.
在一种可能的实现方式中,所述第一FlexE码块流包括O码块,所述O码块包括所述第一序列号。In a possible implementation, the first FlexE code block stream includes an O code block, and the O code block includes the first sequence number.
在一种可能的实现方式中,所述第一FlexE码块流还包括第一指示信息,所述第一指示信息用于指示所述O码块包括所述第一序列号。In a possible implementation, 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.
在一种可能的实现方式中,所述O码块的类型字段用于携带所述第一指示信息。In a possible implementation manner, the type field of the O code block is used to carry the first indication information.
在一种可能的实现方式中,所述第一FlexE码块流包括由一个开始S码块、至少一个数据D码块、和一个结束T码块所组成的SDT码块序列,所述SDT码块序列包括所述第一序列号。In a possible implementation, 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, and the SDT code block sequence includes the first sequence number.
在一种可能的实现方式中,所述SDT码块序列中还包括第二指示信息,所述第二指示信息用于指
示所述SDT码块包括所述第一序列号。In a possible implementation manner, the SDT code block sequence also includes second indication information, where the second indication information is used to indicate Indicates that the SDT code block includes the first sequence number.
在一种可能的实现方式中,所述T码块包括控制块,所述控制块用于承载所述第二指示信息。In a possible implementation manner, the T code block includes a control block, and the control block is used to carry the second indication information.
在一种可能的实现方式中,所述第二指示信息为魔术字。In a possible implementation manner, the second indication information is a magic word.
在一种可能的实现方式中,所述第一FlexE码块流包括前导码,所述前导码包括所述第一序列号。In a possible implementation, the first FlexE code block stream includes a preamble, and the preamble includes the first sequence number.
在一种可能的实现方式中,所述第一FlexE码块流包括第三指示信息,所述第三指示信息用于指示所述前导码包括所述报文序列号。In a possible implementation, the first FlexE code block stream includes third indication information, where the third indication information is used to indicate that the preamble includes the message sequence number.
在一种可能的实现方式中,所述第一FlexE码块流包括fgBU OH和fgBU净荷,所述fgBU OH包括所述第一序列号,所述fgBU OH中还包括细粒度客户fg-client标识。In one possible implementation, the first FlexE code block stream includes fgBU OH and fgBU payload, the fgBU OH includes the first sequence number, and the fgBU OH also includes a fine-grained client fg-client identifier.
在一种可能的实现方式中,所述第一FlexE码块流承载固定比特率CBR业务。In a possible implementation manner, the first FlexE code block stream carries a constant bit rate CBR service.
在一种可能的实现方式中,所述第一FlexE码块流承载可变比特率VBR业务。In a possible implementation manner, the first FlexE code block stream carries a variable bit rate VBR service.
在一种可能的实现方式中,所述装置600还包括:获取单元,用于获取所述第一灵活以太FlexE码块流;所述处理单元602,用于复制所述第一FlexE码块流得到多个所述第一FlexE码块流,以便于通过所述第一通信装置和所述第二通信装置之间的多个FlexE通道向所述第二通信装置分别发送所述多个第一FlexE码块流,所述多个FlexE通道包括所述第一FlexE通道和所述第二FlexE通道。In a possible implementation, the device 600 also includes: an acquisition unit, used to acquire the first Flexible Ethernet FlexE code block stream; the processing unit 602, used to copy the first FlexE code block stream to obtain multiple first FlexE code block streams, so as to facilitate sending the multiple first FlexE code block streams to the second communication device respectively through multiple FlexE channels between the first communication device and the second communication device, and the multiple FlexE channels include the first FlexE channel and the second FlexE channel.
在一种可能的实现方式中,所述装置包括的获取单元还用于:获取第二FlexE码块流,所述第二FlexE码块流包括第二序列号,所述第二序列号标识所述第二FlexE码块流的发送顺序,所述第一序列号和所述第二序列号按照预设规则顺序编号,所述第一FlexE码块流包括的码块与所述第二FlexE码块流包括的码块属于同一个客户client;所述发送单元,还用于通过所述第一FlexE通道向所述第二通信装置发送所述第二FlexE码块流;通过所述第二FlexE通道向所述第二通信装置发送所述第二FlexE码块流。In a possible implementation, the acquisition unit included in the device is also used to: acquire a second FlexE code block stream, the second FlexE code block stream includes a second serial number, the second serial number identifies the sending order of the second FlexE code block stream, the first serial number and the second serial number are numbered in sequence according to a preset rule, 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 client; the sending unit is also used to send the second FlexE code block stream to the second communication device through the first FlexE channel; and send the second FlexE code block stream to the second communication device through the second FlexE channel.
在一个具体的示例中,当所述通信装置600对应以上实施例提及的第二通信装置时,所述收发单元601可以包括接收单元,接收单元,用于通过第一通信装置和所述第二通信装置之间的第一FlexE通道接收第一通信装置发送的第一FlexE码块流,所述第一FlexE码块流包括第一序列号,所述第一序列号标识所述第一FlexE码块流的发送顺序,并通过所述第一通信装置和所述第二通信装置之间的第二FlexE通道接收所述第一通信装置发送的所述第一FlexE码块流。In a specific example, when the communication device 600 corresponds to the second communication device mentioned in the above embodiment, the transceiver unit 601 may include a receiving unit, which is used to receive a first FlexE code block stream sent by the first 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 serial number, the first serial number identifying the sending 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.
在一种可能的实现方式中,所述处理单元602,用于将通过所述第一FlexE通道接收到的所述第一FlexE码块流包括的码块缓存到第一缓存单元,并将通过所述第二FlexE通道接收的所述第一FlexE码块流包括的码块缓存到第二缓存单元。In a possible implementation, the processing unit 602 is configured to cache the code blocks included in the first FlexE code block stream received through the first FlexE channel into a first cache unit, and cache the code blocks included in the first FlexE code block stream received through the second FlexE channel into a second cache unit.
在一种可能的实现方式中,所述接收单元,还用于通过所述第一FlexE通道接收第二FlexE码块流,所述第二FlexE码块流包括第二序列号,所述第一序列号和所述第二序列号按照预设规则顺序编号,所述第一FlexE码块流包括的码块与所述第二FlexE码块流包括的码块属于同一个客户client;所述装置包括的处理单元,还用于将所述第二FlexE码块流包括的码块缓存到所述第一缓存单元;提取所述第一缓存单元存储的所述第一FlexE码块流包括的码块以及第二FlexE码块流包括的码块,以执行转发处理操作。In a possible implementation, the receiving unit is also used to receive a second FlexE code block stream through the first FlexE channel, the second FlexE code block stream includes a second serial number, the first serial number and the second serial number are numbered in sequence according to a preset rule, 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 processing unit included in the device is also used to cache the code blocks included in the second FlexE code block stream to the first cache unit; extract 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 cache unit to perform forwarding processing operations.
在一种可能的实现方式中,所述处理单元602,还用于:清除所述第二缓存单元中存储的属于所述第一FlexE码块流的码块。In a possible implementation manner, the processing unit 602 is further configured to: clear the code blocks belonging to the first FlexE code block stream stored in the second cache unit.
在一种可能的实现方式中,所述接收单元,还用于通过所述第一FlexE通道接收第三FlexE码块流,其中,所述第三FlexE码块流包括第三序列号;通过所述第二FlexE通道接收第二FlexE码块流,所述第二FlexE码块流包括第二序列号,所述第一序列号、所述第二序列号和所述第三序列号按照预设规则顺序编号,所述第一FlexE码块流、所述第二FlexE码块流和所述第三FlexE码块流所包括的码块属于同一个客户client;所述处理单元,还用于将所述第三FlexE码块流包括的码块缓存到所述第一缓存单元;将所述第二FlexE码块流包括的码块存储到所述第二缓存单元;提取所述第二缓存单元存储的码块,以执行转发处理操作。In a possible implementation, the receiving unit is also used to receive a third FlexE code block stream through the first FlexE channel, wherein the third FlexE code block stream includes a third serial number; receive a second FlexE code block stream through the second FlexE channel, 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 in sequence according to a preset rule, and the 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 also used to cache the code blocks included in the third FlexE code block stream to the first cache unit; store the code blocks included in the second FlexE code block stream to the second cache unit; and extract the code blocks stored in the second cache unit to perform forwarding processing operations.
在一种可能的实现方式中,在通过所述第一FlexE通道接收到所述第三FlexE码块流之前,所述第一通信装置未通过所述第一FlexE通道接收到携带有所述第二序列号的所述第二FlexE码块流。In a possible implementation, before receiving the third FlexE code block stream through the first FlexE channel, the first communication device has not received the second FlexE code block stream carrying the second sequence number through the first FlexE channel.
在一种可能的实现方式中,所述第一FlexE通道和所述第二FlexE通道均为FlexE小颗粒通道。
In a possible implementation, the first FlexE channel and the second FlexE channel are both FlexE small particle channels.
在一种可能的实现方式中,所述第一FlexE通道和所述第二FlexE通道均为FlexE大颗粒通道。In a possible implementation, the first FlexE channel and the second FlexE channel are both FlexE large particle channels.
在一种可能的实现方式中,所述第一FlexE码块流是对容器进行编码得到的FlexE码块流,所述容器包括容器开销和容器净荷,所述容器开销包括所述第一序列号,所述容器净荷承载业务数据。In a possible implementation, the first FlexE code block stream is a FlexE code block stream obtained by encoding a container, 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 also includes verification information, and the verification information is used to verify the container overhead.
在一种可能的实现方式中,所述第一FlexE码块流承载小颗粒业务,所述第一FlexE码块流包括细粒度基本单元开销fgBU OH和fgBU净荷,所述fgBU净荷包括所述容器。In one possible implementation, the first FlexE code block stream carries a small-grained service, and the first FlexE code block stream includes a fine-grained basic unit overhead fgBU OH and an fgBU payload, and the fgBU payload includes the container.
在一种可能的实现方式中,所述第一FlexE码块流包括O码块,所述O码块包括所述第一序列号。In a possible implementation, the first FlexE code block stream includes an O code block, and the O code block includes the first sequence number.
在一种可能的实现方式中,所述第一FlexE码块流还包括第一指示信息,所述第一指示信息用于指示所述O码块包括所述第一序列号。In a possible implementation, 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.
在一种可能的实现方式中,所述O码块的类型字段用于携带所述第一指示信息。In a possible implementation manner, the type field of the O code block is used to carry the first indication information.
在一种可能的实现方式中,所述第一FlexE码块流包括由一个开始S码块、至少一个数据D码块、和一个结束T码块所组成的SDT码块序列,所述SDT码块序列包括所述第一序列号。In a possible implementation, 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, and the SDT code block sequence includes the first sequence number.
在一种可能的实现方式中,所述SDT码块序列中还包括第二指示信息,所述第二指示信息用于指示所述SDT码块包括所述第一序列号。In a possible implementation manner, the SDT code block sequence also includes second indication information, where the second indication information is used to indicate that the SDT code block includes the first sequence number.
在一种可能的实现方式中,所述T码块包括控制块,所述控制块用于承载所述第二指示信息。In a possible implementation manner, the T code block includes a control block, and the control block is used to carry the second indication information.
在一种可能的实现方式中,所述第二指示信息为魔术字。In a possible implementation manner, the second indication information is a magic word.
在一种可能的实现方式中,所述第一FlexE码块流包括前导码,所述前导码包括所述第一序列号。In a possible implementation, the first FlexE code block stream includes a preamble, and the preamble includes the first sequence number.
在一种可能的实现方式中,所述第一FlexE码块流包括第三指示信息,所述第三指示信息用于指示所述前导码包括所述报文序列号。In a possible implementation, the first FlexE code block stream includes third indication information, where the third indication information is used to indicate that the preamble includes the message sequence number.
在一种可能的实现方式中,所述第一FlexE码块流包括fgBU OH和fgBU净荷,所述fgBU OH包括所述第一序列号,所述fgBU OH中还包括细粒度客户fg-client标识。In one possible implementation, the first FlexE code block stream includes fgBU OH and fgBU payload, the fgBU OH includes the first sequence number, and the fgBU OH also includes a fine-grained client fg-client identifier.
在一种可能的实现方式中,所述第一FlexE码块流承载固定比特率CBR业务。In a possible implementation manner, the first FlexE code block stream carries a constant bit rate CBR service.
在一种可能的实现方式中,所述第一FlexE码块流承载可变比特率VBR业务。In a possible implementation manner, the first FlexE code block stream carries a variable bit rate VBR service.
此外,本申请实施例还提供了一种通信装置700,参见图7所示,图7为本申请实施例提供的一种通信装置的结构示意图。该通信装置700包括通信接口701和与通信接口701连接的处理器702。该通信装置700可以用于执行以上实施例中的方法100。In addition, the embodiment of the present application further provides a communication device 700, as shown in Figure 7, which is a schematic diagram of the structure of a communication device provided in the embodiment of the present application. The communication device 700 includes a communication interface 701 and a processor 702 connected to the communication interface 701. The communication device 700 can be used to execute the method 100 in the above embodiment.
在一个示例中,所述通信装置700可以执行以上实施例中的方法100,当通信装置700用于执行以上实施例中的方法100时,通信装置700相当于方法100中的第一通信装置。通信接口701用于执行方法100中第一通信装置执行的收发操作。处理器702用于执行方法100中第一通信装置执行的除收发操作之外的操作。例如:通信接口701用于通过第一通信装置和第二通信装置之间的第一FlexE通道向所述第二通信装置发送第一灵活以太FlexE码块流,所述第一FlexE码块流包括第一序列号,所述第一序列号标识所述第一FlexE码块流的发送顺序,通过所述第一通信装置和所述第二通信装置之间的第二FlexE通道向所述第二通信装置发送所述第一FlexE码块流。作为一个示例,处理器702用于复制所述第一FlexE码块流得到多个所述第一FlexE码块流。In one example, the communication device 700 can execute the method 100 in the above embodiment. When the communication device 700 is used to execute the method 100 in the above embodiment, the communication device 700 is equivalent to the first communication device in the method 100. The communication interface 701 is used to execute the transceiver operation performed by the first communication device in the method 100. The processor 702 is used to execute operations other than the transceiver operation performed by the first communication device in the method 100. For example: the communication interface 701 is used to send 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, the first FlexE code block stream including a first sequence number, the first sequence number identifying the sending order of the first FlexE code block stream, and sending 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 used to copy the first FlexE code block stream to obtain multiple first FlexE code block streams.
在一个示例中,所述通信装置700可以执行以上实施例中的方法100,当通信装置700用于执行以上实施例中的方法100时,通信装置700相当于方法100中的第二通信装置。通信接口701用于执行方法100中第二通信装置执行的收发操作。处理器702用于执行方法100中第二通信装置执行的除收发操作之外的操作。例如:通信接口701用于通过所述第一FlexE通道接收第一通信装置发送的所述第一FlexE码块流,通过所述第二FlexE通道接收第一通信装置发送的所述第一FlexE码块流。作为一个示例,处理器702用于将通过所述第一FlexE通道接收到的所述第一FlexE码块流包括的码块缓存到第一缓存单元,并将通过所述第二FlexE通道接收的所述第一FlexE码块流包括的码块缓存到第二缓存单元。In one example, the communication device 700 can execute the method 100 in the above embodiment. When the communication device 700 is used to execute the method 100 in the above embodiment, the communication device 700 is equivalent to the second communication device in the method 100. The communication interface 701 is used to execute the transceiver operation performed by the second communication device in the method 100. The processor 702 is used to execute operations other than the transceiver operation performed by the second communication device in the method 100. For example: the communication interface 701 is used 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 used to cache the code blocks included in the first FlexE code block stream received through the first FlexE channel to the first cache unit, and cache the code blocks included in the first FlexE code block stream received through the second FlexE channel to the second cache unit.
处理器702例如可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。处理器例如还可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate
array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。处理器702可以是指一个处理器,也可以包括多个处理器。The processor 702 may be, for example, a central processing unit (CPU), a network processor (NP), or a combination of a CPU and a NP. The processor may also be, for example, an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof. The PLD may be a complex programmable logic device (CPLD), a field-programmable gate array (FPG), or a combination thereof. FPGA), generic array logic (GAL) or any combination thereof. Processor 702 may refer to one processor or may include multiple processors.
此外,本申请实施例还提供了一种通信装置800,参见图8所示,图8为本申请实施例提供的一种通信装置的结构示意图。该通信装置800可以用于执行以上实施例中的方法100。In addition, the embodiment of the present application further provides a communication device 800, as shown in Figure 8, which is a schematic diagram of the structure of a communication device provided in the embodiment of the present application. The communication device 800 can be used to execute the method 100 in the above embodiment.
如图8所示,通信装置800可以包括处理器810和收发器830。在一个具体的实现中,通信装置还可以包括与所述处理器810耦合连接的存储器820。收发器830例如可以是通信接口,光模块等。处理器810例如可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。处理器例如还可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。处理器810可以是指一个处理器,也可以包括多个处理器。存储器820可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(英文:flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器820还可以包括上述种类的存储器的组合。存储器820可以是指一个存储器,也可以包括多个存储器。在一个实施方式中,存储器820中存储有计算机可读指令,所述计算机可读指令包括多个软件模块,例如发送模块821,处理模块822和接收模块823。处理器810执行各个软件模块后可以按照各个软件模块的指示进行相应的操作。在本实施例中,一个软件模块所执行的操作实际上是指处理器810根据所述软件模块的指示而执行的操作。As shown in FIG8 , the communication device 800 may include a processor 810 and a transceiver 830. In a specific implementation, the communication device may further 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 (CPU), a network processor (NP), or a combination of a CPU and a NP. The processor may also be, for example, an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof. The above-mentioned PLD may be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof. The processor 810 may refer to one processor or may include multiple processors. The memory 820 may include a volatile memory (English: volatile memory), such as a random access memory (English: random-access memory, abbreviated: RAM); the memory may also include a non-volatile memory (English: non-volatile memory), such as a read-only memory (ROM), a flash memory (English: flash memory), a hard disk drive (HDD) or a solid-state drive (SSD); the memory 820 may also include a combination of the above-mentioned types of memories. The memory 820 may refer to one memory or may include multiple memories. In one embodiment, the memory 820 stores computer-readable instructions, and the computer-readable instructions include multiple software modules, such as a sending module 821, a processing module 822 and a receiving module 823. After executing each software module, the processor 810 may perform corresponding operations according to the instructions of each software module. In this embodiment, the operation performed by a software module actually refers to the operation performed by the processor 810 according to the instructions of the software module.
在一个示例中,所述通信装置800可以执行以上实施例中的方法100,当通信装置800用于执行以上实施例中的方法100时,通信装置800相当于方法100中的第一通信装置。收发器830用于执行方法100中第一通信装置执行的收发操作。处理器810用于执行方法100中第一通信装置执行的除收发操作之外的操作。例如:收发器830用于通过第一通信装置和第二通信装置之间的第一FlexE通道向所述第二通信装置发送第一灵活以太FlexE码块流,所述第一FlexE码块流包括第一序列号,所述第一序列号标识所述第一FlexE码块流的发送顺序,通过所述第一通信装置和所述第二通信装置之间的第二FlexE通道向所述第二通信装置发送所述第一FlexE码块流。作为一个示例,处理器810用于复制所述第一FlexE码块流得到多个所述第一FlexE码块流。In one example, the communication device 800 can execute the method 100 in the above embodiment. When the communication device 800 is used to execute the method 100 in the above embodiment, the communication device 800 is equivalent to the first communication device in the method 100. The transceiver 830 is used to execute the transceiver operation performed by the first communication device in the method 100. The processor 810 is used to execute operations other than the transceiver operation performed by the first communication device in the method 100. For example: the transceiver 830 is used to send 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, the first FlexE code block stream including a first sequence number, the first sequence number identifying the order of sending the first FlexE code block stream, and sending 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 used to copy the first FlexE code block stream to obtain multiple first FlexE code block streams.
在一个示例中,所述通信装置800可以执行以上实施例中的方法100,当通信装置800用于执行以上实施例中的方法100时,通信装置800相当于方法100中的第二通信装置。收发器830用于执行方法100中第二通信装置执行的收发操作。处理器810用于执行方法100中第二通信装置执行的除收发操作之外的操作。例如:收发器830用于通过所述第一FlexE通道接收第一通信装置发送的所述第一FlexE码块流,通过所述第二FlexE通道接收第一通信装置发送的所述第一FlexE码块流。作为一个示例,处理器810用于将通过所述第一FlexE通道接收到的所述第一FlexE码块流包括的码块缓存到第一缓存单元,并将通过所述第二FlexE通道接收的所述第一FlexE码块流包括的码块缓存到第二缓存单元。In one example, the communication device 800 may execute the method 100 in the above embodiment. When the communication device 800 is used to execute the method 100 in the above embodiment, the communication device 800 is equivalent to the second communication device in the method 100. The transceiver 830 is used to execute the transceiver operation performed by the second communication device in the method 100. The processor 810 is used to execute operations other than the transceiver operation performed by the second communication device in the method 100. For example: the transceiver 830 is used 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 used to cache the code blocks included in the first FlexE code block stream received through the first FlexE channel to the first cache unit, and cache the code blocks included in the first FlexE code block stream received through the second FlexE channel to the second cache unit.
本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行前述实施例中所述的方法(例如方法100)中任意一个或多个操作。The present application also provides a computer-readable storage medium, in which instructions are stored. When the computer-readable storage medium is executed on a computer, the computer is enabled to execute any one or more operations of the methods (eg, method 100) described in the foregoing embodiments.
本申请还提供了一种计算机程序产品,包括计算机程序,当其在计算机上运行时,使得所述计算机执行前述实施例中所述的方法(例如方法100)中任意一个或多个操作。The present application also provides a computer program product, including a computer program, which, when executed on a computer, enables the computer to execute any one or more operations of the method (eg, method 100) described in the foregoing embodiments.
本申请还提供了一种通信系统,包括以上方法实施例提及的第一通信装置和第二通信装置。The present application also provides a communication system, comprising the first communication device and the second communication device mentioned in the above method embodiment.
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。The terms "first", "second", "third", "fourth", etc. (if any) in the specification and claims of the present application and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchangeable where appropriate, so that the embodiments described herein can be implemented in an order other than that illustrated or described herein. In addition, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusions, for example, a process, method, system, product or device that includes a series of steps or units is not necessarily limited to those steps or units that are clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具
体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。It will be clear to those skilled in the art that for the convenience and brevity of description, the specific embodiments of the systems, devices and units described above are For the whole working process, reference can be made to the corresponding process in the aforementioned method embodiment, which will not be repeated here.
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑业务划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。In the several embodiments provided in the present application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of units is only a logical business division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms.
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple 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 business unit in each embodiment of the present application can be integrated into a processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The above-mentioned integrated unit can be implemented in the form of hardware or in the form of software business units.
集成的单元如果以软件业务单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。If the integrated unit is implemented in the form of a software business unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product. The computer software product is stored in a storage medium, including several instructions for a computer device (which can be a personal computer, server, or network device, etc.) to perform all or part of the steps of the various embodiments of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), disk or optical disk and other media that can store program code.
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的业务可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些业务存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。Those skilled in the art should be aware that in one or more of the above examples, the services described in the present invention can be implemented using hardware, software, firmware, or any combination thereof. When implemented using software, the services can be stored in a computer-readable medium or transmitted as one or more instructions or codes on a computer-readable medium. Computer-readable media include computer storage media and communication media, wherein communication media include any media that facilitates the transmission of computer programs from one place to another. Storage media can be any available media that can be accessed by general or special-purpose computers.
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已。The above specific implementation modes further describe the objectives, technical solutions and beneficial effects of the present invention in detail. It should be understood that the above are only specific implementation modes of the present invention.
以上,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
The above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the aforementioned embodiments, a person of ordinary skill in the art should understand that the technical solutions described in the aforementioned embodiments may still be modified, or some of the technical features thereof may be replaced by equivalents. However, these modifications or replacements do not deviate the essence of the corresponding technical solutions from the scope of the technical solutions of the embodiments of the present application.
Claims (48)
- 一种通信方法,其特征在于,应用于第一通信装置,所述方法包括:A communication method, characterized in that it is applied to a first communication device, the method comprising:通过所述第一通信装置和所述第二通信装置之间的第一FlexE通道向所述第二通信装置发送第一灵活以太FlexE码块流,所述第一FlexE码块流包括第一序列号,所述第一序列号标识所述第一FlexE码块流的发送顺序;Sending 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, where the first sequence number identifies a sending order of the first FlexE code block stream;通过所述第一通信装置和所述第二通信装置之间的第二FlexE通道向所述第二通信装置发送所述第一FlexE码块流。The first FlexE code block stream is sent to the second communication device through a second FlexE channel between the first communication device and the second communication device.
- 根据权利要求1所述的方法,其特征在于,所述第一FlexE通道和所述第二FlexE通道均为FlexE小颗粒通道。The method according to claim 1 is characterized in that the first FlexE channel and the second FlexE channel are both FlexE small particle channels.
- 根据权利要求1所述的方法,其特征在于,所述第一FlexE通道和所述第二FlexE通道均为FlexE大颗粒通道。The method according to claim 1 is characterized in that the first FlexE channel and the second FlexE channel are both FlexE large particle channels.
- 根据权利要求1-3任意一项所述的方法,其特征在于,所述第一FlexE码块流是对容器进行编码得到的FlexE码块流,所述容器包括容器开销和容器净荷,所述容器开销包括所述第一序列号,所述容器净荷承载业务数据。The method according to any one of claims 1-3 is characterized in that the first FlexE code block stream is a FlexE code block stream obtained by encoding a container, 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.
- 根据权利要求4所述的方法,其特征在于,所述容器开销中还包括校验信息,所述校验信息用于对所述容器开销进行校验。The method according to claim 4 is characterized in that the container overhead also includes verification information, and the verification information is used to verify the container overhead.
- 根据权利要求4或5所述的方法,其特征在于,所述第一FlexE码块流承载小颗粒业务,所述第一FlexE码块流包括细粒度基本单元开销fgBU OH和fgBU净荷,所述fgBU净荷包括所述容器。The method according to claim 4 or 5 is characterized in that the first FlexE code block stream carries small-grained services, the first FlexE code block stream includes a fine-grained basic unit overhead fgBU OH and an fgBU payload, and the fgBU payload includes the container.
- 根据权利要求1-3任意一项所述的方法,其特征在于,所述第一FlexE码块流包括O码块,所述O码块包括所述第一序列号。The method according to any one of claims 1 to 3 is characterized in that the first FlexE code block stream includes an O code block, and the O code block includes the first sequence number.
- 根据权利要求7所述的方法,其特征在于,所述第一FlexE码块流还包括第一指示信息,所述第一指示信息用于指示所述O码块包括所述第一序列号。The method according to claim 7 is characterized in that the first FlexE code block stream also includes first indication information, and the first indication information is used to indicate that the O code block includes the first sequence number.
- 根据权利要求8所述的方法,其特征在于,所述O码块的类型字段用于携带所述第一指示信息。The method according to claim 8 is characterized in that the type field of the O code block is used to carry the first indication information.
- 根据权利要求1-3任意一项所述的方法,其特征在于,所述第一FlexE码块流包括由一个开始S码块、至少一个数据D码块、和一个结束T码块所组成的SDT码块序列,所述SDT码块序列包括所述第一序列号。The method according to any one of claims 1-3 is characterized in that 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, and the SDT code block sequence includes the first sequence number.
- 根据权利要求10所述的方法,其特征在于,所述SDT码块序列中还包括第二指示信息,所述第二指示信息用于指示所述SDT码块包括所述第一序列号。The method according to claim 10 is characterized in that the SDT code block sequence also includes second indication information, and the second indication information is used to indicate that the SDT code block includes the first sequence number.
- 根据权利要求11所述的方法,其特征在于,所述T码块包括控制块,所述控制块用于承载所述第二指示信息。The method according to claim 11 is characterized in that the T code block includes a control block, and the control block is used to carry the second indication information.
- 根据权利要求11或12所述的方法,其特征在于,所述第二指示信息为魔术字。The method according to claim 11 or 12, characterized in that the second indication information is a magic word.
- 根据权利要求1-3任意一项所述的方法,其特征在于,所述第一FlexE码块流包括前导码,所述前导码包括所述第一序列号。The method according to any one of claims 1 to 3 is characterized in that the first FlexE code block stream includes a preamble code, and the preamble code includes the first sequence number.
- 根据权利要求14所述的方法,其特征在于,所述第一FlexE码块流包括第三指示信息,所述第三指示信息用于指示所述前导码包括所述报文序列号。The method according to claim 14 is characterized in that the first FlexE code block stream includes third indication information, and the third indication information is used to indicate that the preamble code includes the message sequence number.
- 根据权利要求2所述的方法,其特征在于,所述第一FlexE码块流包括fgBU OH和fgBU净荷,所述fgBU OH包括所述第一序列号,所述fgBU OH中还包括细粒度客户fg-client标识。The method according to claim 2 is characterized in that the first FlexE code block stream includes fgBU OH and fgBU payload, the fgBU OH includes the first serial number, and the fgBU OH also includes a fine-grained client fg-client identifier.
- 根据权利要求1-16任意一项所述的方法,其特征在于,所述第一FlexE码块流承载固定比特率CBR业务。The method according to any one of claims 1-16 is characterized in that the first FlexE code block stream carries a fixed bit rate CBR service.
- 根据权利要求1-16任意一项所述的方法,其特征在于,所述第一FlexE码块流承载可变比特率VBR业务。The method according to any one of claims 1-16 is characterized in that the first FlexE code block stream carries a variable bit rate (VBR) service.
- 根据权利要求1-18任意一项所述的方法,其特征在于,所述方法还包括:The method according to any one of claims 1 to 18, characterized in that the method further comprises:获取所述第一灵活以太FlexE码块流;Acquire the first Flexible Ethernet FlexE code block stream;复制所述第一FlexE码块流得到多个所述第一FlexE码块流,以便于通过所述第一通信装置和所述第二通信装置之间的多个FlexE通道向所述第二通信装置分别发送所述多个第一FlexE码块流,所述多个FlexE通道包括所述第一FlexE通道和所述第二FlexE通道。 The first FlexE code block stream is copied to obtain multiple first FlexE code block streams, so as to respectively send the multiple first FlexE code block streams to the second communication device through multiple FlexE channels between the first communication device and the second communication device, and the multiple FlexE channels include the first FlexE channel and the second FlexE channel.
- 根据权利要求1-19任意一项所述的方法,其特征在于,所述方法还包括:The method according to any one of claims 1 to 19, characterized in that the method further comprises:获取第二FlexE码块流,所述第二FlexE码块流包括第二序列号,所述第二序列号标识所述第二FlexE码块流的发送顺序,所述第一序列号和所述第二序列号按照预设规则顺序编号,所述第一FlexE码块流包括的码块与所述第二FlexE码块流包括的码块属于同一个客户client;Acquire a second FlexE code block stream, where the second FlexE code block stream includes a second sequence number, where the second sequence number identifies a sending order of the second FlexE code block stream, where the first sequence number and the second sequence number are sequentially numbered according to a preset rule, and where 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 client;通过所述第一FlexE通道向所述第二通信装置发送所述第二FlexE码块流;Sending the second FlexE code block stream to the second communication device through the first FlexE channel;通过所述第二FlexE通道向所述第二通信装置发送所述第二FlexE码块流。The second FlexE code block stream is sent to the second communication device through the second FlexE channel.
- 一种通信方法,其特征在于,应用于第二通信装置,所述方法包括:A communication method, characterized in that it is applied to a second communication device, the method comprising:通过第一通信装置和所述第二通信装置之间的第一FlexE通道接收第一通信装置发送的第一FlexE码块流,所述第一FlexE码块流包括第一序列号,所述第一序列号标识所述第一FlexE码块流的发送顺序;receiving, through a first FlexE channel between the first communication device and the second communication device, a first FlexE code block stream sent by the first communication device, where the first FlexE code block stream includes a first sequence number, where the first sequence number identifies a sending order of the first FlexE code block stream;通过所述第一通信装置和所述第二通信装置之间的第二FlexE通道接收所述第一通信装置发送的所述第一FlexE码块流。The first FlexE code block stream sent by the first communication device is received through a second FlexE channel between the first communication device and the second communication device.
- 根据权利要求21所述的方法,其特征在于,所述方法还包括:The method according to claim 21, characterized in that the method further comprises:将通过所述第一FlexE通道接收到的所述第一FlexE码块流包括的码块缓存到第一缓存单元;Cache the code blocks included in the first FlexE code block stream received through the first FlexE channel in a first cache unit;将通过所述第二FlexE通道接收的所述第一FlexE码块流包括的码块缓存到第二缓存单元。The code blocks included in the first FlexE code block stream received through the second FlexE channel are cached in a second cache unit.
- 根据权利要求21或22所述的方法,其特征在于,所述方法还包括:The method according to claim 21 or 22, characterized in that the method further comprises:通过所述第一FlexE通道接收第二FlexE码块流,所述第二FlexE码块流包括第二序列号,所述第一序列号和所述第二序列号按照预设规则顺序编号,所述第一FlexE码块流包括的码块与所述第二FlexE码块流包括的码块属于同一个客户client;receiving a second FlexE code block stream through the first FlexE channel, where the second FlexE code block stream includes a second serial number, the first serial number and the second serial number are sequentially numbered according to a preset rule, 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;将所述第二FlexE码块流包括的码块缓存到所述第一缓存单元;Cache the code blocks included in the second FlexE code block stream into the first cache unit;提取所述第一缓存单元存储的所述第一FlexE码块流包括的码块以及第二FlexE码块流包括的码块,以执行转发处理操作。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 cache unit are extracted to perform a forwarding processing operation.
- 根据权利要求23所述的方法,其特征在于,所述方法还包括:The method according to claim 23, characterized in that the method further comprises:清除所述第二缓存单元中存储的属于所述第一FlexE码块流的码块。Clear the code blocks belonging to the first FlexE code block stream stored in the second cache unit.
- 根据权利要求22所述的方法,其特征在于,所述方法还包括:The method according to claim 22, characterized in that the method further comprises:通过所述第一FlexE通道接收第三FlexE码块流,其中,所述第三FlexE码块流包括第三序列号;通过所述第二FlexE通道接收第二FlexE码块流,所述第二FlexE码块流包括第二序列号,所述第一序列号、所述第二序列号和所述第三序列号按照预设规则顺序编号,所述第一FlexE码块流、所述第二FlexE码块流和所述第三FlexE码块流所包括的码块属于同一个客户client;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 includes a second sequence number, the first sequence number, the second sequence number, and the third sequence number are sequentially numbered according to a preset rule, and the 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;将所述第三FlexE码块流包括的码块缓存到所述第一缓存单元;Cache the code blocks included in the third FlexE code block stream into the first cache unit;将所述第二FlexE码块流包括的码块存储到所述第二缓存单元;Storing the code blocks included in the second FlexE code block stream in the second cache unit;提取所述第二缓存单元存储的码块,以执行转发处理操作。The code blocks stored in the second cache unit are extracted to perform a forwarding processing operation.
- 根据权利要求25所述的方法,其特征在于,在通过所述第一FlexE通道接收到所述第三FlexE码块流之前,所述第一通信装置未通过所述第一FlexE通道接收到携带有所述第二序列号的所述第二FlexE码块流。The method according to claim 25 is characterized in that before receiving the third FlexE code block stream through the first FlexE channel, the first communication device has not received the second FlexE code block stream carrying the second serial number through the first FlexE channel.
- 根据权利要求21所述的方法,其特征在于,所述第一FlexE通道和所述第二FlexE通道均为FlexE小颗粒通道。The method according to claim 21 is characterized in that the first FlexE channel and the second FlexE channel are both FlexE small particle channels.
- 根据权利要求21所述的方法,其特征在于,所述第一FlexE通道和所述第二FlexE通道均为FlexE大颗粒通道。The method according to claim 21 is characterized in that the first FlexE channel and the second FlexE channel are both FlexE large particle channels.
- 根据权利要求21-28任意一项所述的方法,其特征在于,所述第一FlexE码块流是对容器进行编码得到的FlexE码块流,所述容器包括容器开销和容器净荷,所述容器开销包括所述第一序列号,所述容器净荷承载业务数据。The method according to any one of claims 21-28 is characterized in that the first FlexE code block stream is a FlexE code block stream obtained by encoding a container, 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.
- 根据权利要求29所述的方法,其特征在于,所述容器开销中还包括校验信息,所述校验信息用于对所述容器开销进行校验。The method according to claim 29 is characterized in that the container overhead also includes verification information, and the verification information is used to verify the container overhead.
- 根据权利要求29或30所述的方法,其特征在于,所述第一FlexE码块流承载小颗粒业务,所述第一FlexE码块流包括细粒度基本单元开销fgBU OH和fgBU净荷,所述fgBU净荷包括所述容器。 The method according to claim 29 or 30 is characterized in that the first FlexE code block stream carries a small-granularity service, the first FlexE code block stream includes a fine-grained basic unit overhead fgBU OH and an fgBU payload, and the fgBU payload includes the container.
- 根据权利要求21-28任意一项所述的方法,其特征在于,所述第一FlexE码块流包括O码块,所述O码块包括所述第一序列号。The method according to any one of claims 21-28 is characterized in that the first FlexE code block stream includes an O code block, and the O code block includes the first sequence number.
- 根据权利要求32所述的方法,其特征在于,所述第一FlexE码块流还包括第一指示信息,所述第一指示信息用于指示所述O码块包括所述第一序列号。The method according to claim 32 is characterized in that the first FlexE code block stream also includes first indication information, and the first indication information is used to indicate that the O code block includes the first sequence number.
- 根据权利要求33所述的方法,其特征在于,所述O码块的类型字段用于携带所述第一指示信息。The method according to claim 33 is characterized in that the type field of the O code block is used to carry the first indication information.
- 根据权利要求21-28任意一项所述的方法,其特征在于,所述第一FlexE码块流包括由一个开始S码块、至少一个数据D码块、和一个结束T码块所组成的SDT码块序列,所述SDT码块序列包括所述第一序列号。The method according to any one of claims 21-28 is characterized in that 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, and the SDT code block sequence includes the first sequence number.
- 根据权利要求35所述的方法,其特征在于,所述SDT码块序列中还包括第二指示信息,所述第二指示信息用于指示所述SDT码块包括所述第一序列号。The method according to claim 35 is characterized in that the SDT code block sequence also includes second indication information, and the second indication information is used to indicate that the SDT code block includes the first sequence number.
- 根据权利要求36所述的方法,其特征在于,所述T码块包括控制块,所述控制块用于承载所述第二指示信息。The method according to claim 36 is characterized in that the T code block includes a control block, and the control block is used to carry the second indication information.
- 根据权利要求36或37所述的方法,其特征在于,所述第二指示信息为魔术字。The method according to claim 36 or 37 is characterized in that the second indication information is a magic word.
- 根据权利要求21-28任意一项所述的方法,其特征在于,所述第一FlexE码块流包括前导码,所述前导码包括所述第一序列号。The method according to any one of claims 21 to 28 is characterized in that the first FlexE code block stream includes a preamble code, and the preamble code includes the first sequence number.
- 根据权利要求39所述的方法,其特征在于,所述第一FlexE码块流包括第三指示信息,所述第三指示信息用于指示所述前导码包括所述报文序列号。The method according to claim 39 is characterized in that the first FlexE code block stream includes third indication information, and the third indication information is used to indicate that the preamble code includes the message sequence number.
- 根据权利要求27所述的方法,其特征在于,所述第一FlexE码块流包括fgBU OH和fgBU净荷,所述fgBU OH包括所述第一序列号,所述fgBU OH中还包括细粒度客户fg-client标识。The method according to claim 27 is characterized in that the first FlexE code block stream includes fgBU OH and fgBU payload, the fgBU OH includes the first serial number, and the fgBU OH also includes a fine-grained client fg-client identifier.
- 根据权利要求21-41任意一项所述的方法,其特征在于,所述第一FlexE码块流承载固定比特率CBR业务。The method according to any one of claims 21-41 is characterized in that the first FlexE code block stream carries a fixed bit rate CBR service.
- 根据权利要求21-41任意一项所述的方法,其特征在于,所述第一FlexE码块流承载可变比特率VBR业务。The method according to any one of claims 21-41 is characterized in that the first FlexE code block stream carries a variable bit rate (VBR) service.
- 一种第一通信装置,其特征在于,所述装置包括:A first communication device, characterized in that the device comprises:收发单元和处理单元;Transceiver unit and processing unit;所述收发单元,用于执行权利要求1-20任意一项所述的由第一通信装置执行的接收和/或发送操作;The transceiver unit is used to perform the receiving and/or sending operation performed by the first communication device according to any one of claims 1 to 20;所述处理单元用于执行权利要求1-20任意一项所述的由第一通信装置执行的接收和/或发送操作之外的操作。The processing unit is used to perform operations other than the receiving and/or sending operations performed by the first communication device as described in any one of claims 1-20.
- 一种第二通信装置,其特征在于,所述装置包括:A second communication device, characterized in that the device comprises:收发单元和处理单元;Transceiver unit and processing unit;所述收发单元,用于执行权利要求21-43任意一项所述的由第二通信装置执行的接收和/或发送操作;The transceiver unit is used to perform the receiving and/or sending operation performed by the second communication device as described in any one of claims 21-43;所述处理单元用于执行权利要求21-43任意一项所述的由第二通信装置执行的接收和/或发送操作之外的操作。The processing unit is used to perform operations other than the receiving and/or sending operations performed by the second communication device as described in any one of claims 21-43.
- 一种通信装置,其特征在于,包括:处理器和存储器;A communication device, comprising: a processor and a memory;所述存储器,用于存储指令;The memory is used to store instructions;所述处理器,用于执行所述指令,使得所述通信装置执行权利要求1-43任意一项所述的方法。The processor is used to execute the instructions so that the communication device performs the method described in any one of claims 1-43.
- 一种计算机可读存储介质,其特征在于,包括指令,当所述指令在处理器上运行时,实现权利要求1-43任意一项所述的方法。A computer-readable storage medium, characterized in that it includes instructions, and when the instructions are executed on a processor, the method described in any one of claims 1-43 is implemented.
- 一种计算机程序产品,其特征在于,包括计算机程序,当其在处理器上运行时,执行以上权利要求1-43任意一项所述的方法。 A computer program product, characterized in that it comprises a computer program, which, when running on a processor, executes the method described in any one of claims 1 to 43 above.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211316947.4 | 2022-10-26 | ||
CN202211316947.4A CN117938738A (en) | 2022-10-26 | 2022-10-26 | Communication method and device |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024087975A1 true WO2024087975A1 (en) | 2024-05-02 |
Family
ID=90759931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2023/120938 WO2024087975A1 (en) | 2022-10-26 | 2023-09-25 | Communication method and apparatus |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117938738A (en) |
WO (1) | WO2024087975A1 (en) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104040932A (en) * | 2012-01-17 | 2014-09-10 | 网络洞察力知识产权公司 | A network communication redundancy method |
CN108809901A (en) * | 2017-05-02 | 2018-11-13 | 华为技术有限公司 | A kind of method, apparatus and system of service bearer |
CN109672560A (en) * | 2018-12-13 | 2019-04-23 | Ut斯达康通讯有限公司 | Flexible ethernet management channel extended method and equipment |
CN111092686A (en) * | 2019-11-28 | 2020-05-01 | 中兴通讯股份有限公司 | Data transmission method, device, terminal equipment and storage medium |
US20210152898A1 (en) * | 2017-06-16 | 2021-05-20 | China Mobile Communication Co., Ltd Research Institute | Transmission network system, data switching and transmission method, apparatus and equipment |
CN113708979A (en) * | 2021-09-29 | 2021-11-26 | 深圳市腾讯网域计算机网络有限公司 | Network acceleration method and device |
CN114978986A (en) * | 2022-05-13 | 2022-08-30 | 中国联合网络通信集团有限公司 | 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
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104040932A (en) * | 2012-01-17 | 2014-09-10 | 网络洞察力知识产权公司 | A network communication redundancy method |
CN108809901A (en) * | 2017-05-02 | 2018-11-13 | 华为技术有限公司 | A kind of method, apparatus and system of service bearer |
US20210152898A1 (en) * | 2017-06-16 | 2021-05-20 | China Mobile Communication Co., Ltd Research Institute | Transmission network system, data switching and transmission method, apparatus and equipment |
CN109672560A (en) * | 2018-12-13 | 2019-04-23 | Ut斯达康通讯有限公司 | Flexible ethernet management channel extended method and equipment |
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 |
CN114978986A (en) * | 2022-05-13 | 2022-08-30 | 中国联合网络通信集团有限公司 | Data transmission method, device and storage medium |
Also Published As
Publication number | Publication date |
---|---|
CN117938738A (en) | 2024-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12034624B2 (en) | Flexible ethernet operations, administration, and maintenance systems and methods | |
WO2022022263A1 (en) | Data transmission method, and device | |
US6771663B1 (en) | Hybrid data transport scheme over optical networks | |
JP6867473B2 (en) | Methods and equipment for sending services, methods and equipment for receiving services, and network systems. | |
CN113508543B (en) | Method for adapting a constant bit rate client signal into a path layer of a telecommunication signal | |
US7006525B1 (en) | Hybrid data transport scheme over optical networks | |
WO2017201953A1 (en) | Method and device for processing customer service | |
JP7282187B2 (en) | FLEXIBLE ETHERNET COMMUNICATION METHOD AND NETWORK DEVICE | |
JP7052046B2 (en) | Data transmission methods, communication equipment, and storage media | |
WO2010022606A1 (en) | Method and device for adapting and bearing multiple services | |
US6731654B1 (en) | Communication system overhead channel | |
US6778561B1 (en) | Hybrid data transport scheme over optical networks | |
US20210385127A1 (en) | Flexible ethernet communication method and network device | |
US6973084B1 (en) | Hybrid data transport scheme over optical networks | |
US20020196811A1 (en) | Transmission of data frames using low-overhead encapsulation and multiple virtual tributaries in a synchronous optical network | |
WO2024087975A1 (en) | Communication method and apparatus | |
WO2001069834A1 (en) | Hybrid data transport scheme over optical networks | |
WO2024032191A1 (en) | Fault code block processing method and device | |
CN115811388A (en) | Communication method, related device and storage medium | |
CN116264587A (en) | Data transmission method and related device | |
WO2023197770A1 (en) | Fault notification method and apparatus | |
WO2023071249A1 (en) | Time slot negotiation method and apparatus | |
WO2024032269A1 (en) | Communication method, related apparatus and computer-readable storage medium | |
WO2024222620A1 (en) | Method and apparatus for data processing, and communication system | |
CN118677718A (en) | Data processing method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23881554 Country of ref document: EP Kind code of ref document: A1 |