Data Communication
20200336938 ยท 2020-10-22
Inventors
Cpc classification
H04N21/64707
ELECTRICITY
H04N21/23611
ELECTRICITY
H04N21/64738
ELECTRICITY
International classification
Abstract
A network-based communication system has a source network apparatus and a destination network apparatus. The source apparatus receives a stream of information-bearing packets, the stream comprising gaps between at least some of the information-bearing packets. It generates one or more spacer packets, and generates an augmented stream of packets which comprises the information-bearing packets and further comprises spacer packets located within at least some of said gaps, wherein the spacing of the information-bearing packets in the augmented stream is the same as the spacing of the corresponding information-bearing packets in the received stream. It outputs the augmented stream of packets to a network link. The destination apparatus receives the augmented stream of packets and determines whether each received packet is an information-bearing packet or a spacer packet. It outputs or processes the received information-bearing packets, or information from these packets, but discards the received spacer packets.
Claims
1. A network-based communication method, comprising: a source network apparatus receiving a stream of information-bearing packets, the stream comprising gaps between at least some of the information-bearing packets; the source network apparatus generating one or more spacer packets and generating an augmented stream of packets, the augmented stream of packets comprising the information-bearing packets and further comprising spacer packets located within at least some of said gaps, wherein a the spacing of the information-bearing packets in the augmented stream is the same as a the spacing of the corresponding information-bearing packets in the received stream of information-bearing packets; the source network apparatus outputting the augmented stream of packets to a network link from an output of the source network apparatus; the augmented stream of packets travelling through one or more network links between the source network apparatus and a destination network apparatus; the destination network apparatus receiving the augmented stream of packets at an input of the destination network apparatus; the destination network apparatus determining whether each received packet is an information-bearing packet or a spacer packet; the destination network apparatus outputting or processing the received information-bearing packets, or outputting or processing information from the received information-bearing packets; and the destination network apparatus discarding the received spacer packets.
2. (canceled)
3. The network-based communication method of claim 1, comprising the source network apparatus completely filling every gap in the stream of information-bearing packets with one or more spacer packets when generating the augmented stream of packets.
4. The network-based communication method of claim 1, comprising the source network apparatus generating spacer packets having lengths such that there is a constant-sized gap between every packet in the generated augmented stream of packets.
5. The network-based communication method of claim 1, wherein each of the information-bearing packets comprises timing information, the method further comprising the destination network apparatus buffering the augmented stream of packets and using the timing information to compensate for packet delay variation when outputting or processing the received information-bearing packets, or when outputting or processing information from the received information-bearing packets.
6. The network-based communication method of claim 1, comprising the source network apparatus inserting further information-bearing packets, received or generated by the source network apparatus, into gaps between adjacent packets of the stream of information-bearing packets, such that the augmented stream of packets comprises: i) the information-bearing packets; ii) further information-bearing packets located between adjacent information-bearing packets of the stream of information-bearing packets; and iii) spacer packets located between adjacent information-bearing packets of the stream of information-bearing packets.
7. The network-based communication method of claim 1, comprising the destination network apparatus adjusting a position of one or more packets in the received augmented stream of packets by increasing or decreasing gaps in the received augmented stream of packets so as to make the gaps closer to, or equal to, a predetermined constant gap length.
8. The network-based communication method of claim 1, comprising the destination network apparatus synchronising a clock of the destination network apparatus with a clock of the source network apparatus by analysing the received augmented stream.
9. The network-based communication method of claim 1, comprising the source network apparatus dividing each packet of the stream of information-bearing packets that is larger than a predetermined constant size into a plurality of smaller information-bearing packets, and including the plurality of smaller information-bearing packets in the augmented stream of data packets.
10. (canceled)
11. The network-based communication method of claim 1, comprising the source network apparatus padding each packet of the stream of information-bearing packets that is smaller than a predetermined constant size to create a padded information-bearing packet, and including the padded information-bearing packets in the augmented stream of data packets.
12. A network-based communication system, comprising: a source network apparatus; and a destination network apparatus, wherein the source network apparatus comprises: an input for receiving a stream of information-bearing packets, the stream comprising gaps between at least some of the information-bearing packets; a hardware module and/or a processor and memory storing software for execution by the processor, configured to generate one or more spacer packets and to generate an augmented stream of packets, the augmented stream of packets comprising the information-bearing packets and further comprising spacer packets located within at least some of said gaps, wherein a spacing of the information-bearing packets in the augmented stream is the same as a spacing of the corresponding information-bearing packets in the received stream of information-bearing packets; and an output for transmitting the augmented stream of packets to a network link, and wherein the destination network apparatus comprises: an input for receiving the augmented stream of packets; a hardware module and/or a processor and memory storing software for execution by the processor, configured to determine whether each received packet is an information-bearing packet or a spacer packet; output or process the received information-bearing packets, or output or process information from the received information-bearing packets; and discard the received spacer packets.
13-14. (canceled)
15. The network-based communication system of claim 12, wherein the hardware module and/or processor of the source network apparatus is configured to completely fill every gap in the stream of information-bearing packets with one or more spacer packets when generating the augmented stream of packets.
16. The network-based communication system of claim 12, wherein the hardware module and/or processor of the source network apparatus is configured to generate spacer packets having lengths such that there is a constant-sized gap between every packet in the generated augmented stream of packets.
17. The network-based communication system of claim 12, wherein each of the information-bearing packets comprises timing information, and wherein the destination network apparatus comprises a buffer, and the hardware module and/or the processor of the destination network apparatus is configured to buffer the augmented stream of packets in the buffer and use the timing information to compensate for packet delay variation when outputting or processing the received information-bearing packets, or when outputting or processing information from the received information-bearing packets.
18. The network-based communication system of claim 12, wherein the hardware module and/or the processor of the source network apparatus is configured to insert further information-bearing packets, received at the input of the source network apparatus or generated by the hardware module and/or the processor of the source network apparatus, into gaps between adjacent packets of the stream of information-bearing packets, such that the augmented stream of packets comprises: i) the information-bearing packets; ii) further information-bearing packets located between adjacent information-bearing packets of the stream of information-bearing packets; and iii) spacer packets located between adjacent information-bearing packets of the stream of information-bearing packets.
19. The network-based communication system of claim 18, wherein the hardware module and/or the processor of the source network apparatus is configured to insert a further information-bearing packet from a memory into a gap between two packets of the information-bearing packet stream when there is an available further information-bearing packet in the memory that will fit within the gap, and to insert a spacer packet into the gap only when no such further information-bearing packet is available.
20. The network-based communication system of claim 12, wherein the hardware module and/or the processor of the destination network apparatus is configured to adjust a position of one or more packets in the received augmented stream of packets by increasing or decreasing gaps in the received augmented stream of packets so as to make the gaps closer to, or equal to, a predetermined constant gap length.
21. The network-based communication system of claim 12, wherein the source network apparatus comprises a clock, the destination network apparatus comprises a clock, and the hardware module and/or the processor of the destination network apparatus is configured to synchronise the clock of the destination network apparatus with the clock of the source network apparatus by analysing the received augmented stream.
22. The network-based communication system of claim 12, wherein the hardware module and/or the processor of the source network apparatus is configured to divide each packet of the stream of information-bearing packets that is larger than a predetermined constant size into a plurality of smaller information-bearing packets, and include the plurality of smaller information-bearing packets in the augmented stream of data packets.
23. (canceled)
24. The network-based communication system of claim 12, wherein the hardware module and/or the processor of the source network apparatus is further configured to pad each packet of the stream of information-bearing packets that is smaller than a predetermined constant size to create a padded information-bearing packet, and include the padded information-bearing packets in the augmented stream of data packets.
25-28. (canceled)
29. A network-based communication apparatus comprising: An input receiving a stream of information-bearing packets, the stream comprising gaps between at least some of the information-bearing packets; A hardware module and/or a processor and memory storing software for execution by the processor, configured to generate one or more spacer packets and to generate an augmented stream of packets, the augmented stream of packets comprising the information-bearing packets and further comprising spacer packets located within at least some of said gaps, wherein a spacing of the information-bearing packets in the augmented stream is the same as a spacing of the corresponding information-bearing packets in the received stream of information-bearing packets; and an output for outputting the augmented stream of packets to a network link.
30. (canceled)
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0104] Certain preferred embodiments of the invention will now be described, by way of example only, with reference to the accompanying drawings, in which:
[0105]
[0106]
[0107]
[0108]
[0109]
[0110]
[0111]
[0112]
[0113]
[0114]
[0115]
[0116]
[0117]
DETAILED DESCRIPTION
[0118]
[0119] It will be appreciated that the terms source and destination are used merely as convenient labels for the present description; there may be an ultimate source or an ultimate destination for the data, beyond these switches; also, the source network switch 10 may also act as a destination for other packets, and the destination switch 11 may act as a source for other packets.
[0120] The source switch 10 is connected to a spacer-packet generator 13. This may physically be located alongside or within the source switch 10e.g., in a common housing with the source switch 10or it may be remote from the source switch 10e.g., implemented as a separate unit, which may be connected to the source switch 10 by an electrical or optical cable.
[0121] In use, a stream 14 of information-bearing packets is received at an input to the source network switch 10. The source switch 10 may have other inputs, but only one is shown here to simplify the description. There is an inter-packet spacing in the stream 14i.e., there are gaps between at least some pairs of adjacent packets in the stream 14. Each packet may be time-stamped, although this is not essential.
[0122] A gap-detection module within the source switch 10 identifies gaps between packets in the received stream 14, and sends data relating to the inter-packet spacing to the spacer-packet generator 13. The data may comprise the length of each detected gap. It may comprise information relating to a position of each of respective gap. For each gap, the spacer-packet generator 13 generates one or more spacer packets having an aggregate length equal to the gap. The spacer packets are normal packets, except that they contain a null data payloadfor example, a repeated constant byte such as 0x00, or randomly-generated data or noise. They may include a particular value in packet header or body that marks them as spacer packets, such as a distinct EtherType value, so that the destination switch 11 can identify them as such.
[0123] The generated spacer packets are sent by the spacer-packet generator 13 to the source switch 10, which inserts them between the information-bearing packets as it schedules the information-bearing packets onto the network link 12a. Thus, the source switch 10 outputs an augmented data stream 15 in which all vacant gaps in the received data stream 14 are filled with spacer packets.
[0124] This augmented data stream 15 is transmitted through the network 12, which should apply only a constant delay to each packet of the augmented data stream 15, since it is effectively a constant bitrate stream. Unless the network 12 has to drop packets, only negligible PDV should be introduced to the augmented data stream 15 by its transmission through the network 12.
[0125]
[0126] The scheduling of the information-bearing packets from the output of the destination switch 11 may be based on the positions they have within the augmented data stream 15 (i.e., relying on the spacer packets to preserve the inter-packet spacing of the original stream 14), or the destination switch 11 may schedule the output of each information-bearing packet based on a time-stamp within the packet, or based on timing information received by some other mechanism, such as in a special timing-information packet. However the scheduling is done, the output data stream 17 should, as far as possible, be an accurate representation of the original data stream 14, with the same inter-packet spacingi.e., with no PDV having been introduced between the source network switch 10 and the destination network switch 11. Depending on the network protocol, the gaps between packets in the output data stream 17 may be filled with gap bytes (i.e., bytes having a reserved value denoting a gap), or they may be conveyed through an absence of data.
[0127]
[0128]
[0129] It will be appreciated that these steps, while described sequentially, will in practice typically be performed repeatedly and concurrently, for successive respective packets, for as long as the streams continue flowing through the system 9.
[0130] Each of the source switch 10, spacer-packet generator 13, and destination switch 11 may be implemented using an appropriate combination of hardware and/or software. Each may comprise any one or more of: processors, ASICs, DSPs, FPGAs, volatile memory, non-volatile memory, electronic components, optical components, inputs, outputs, power supplies, etc. Each may implement some or all of the steps described herein using software instructions executed by one or more processors, or using hardware (e.g., FPGA and/or ASICs), or using a combination of the two.
[0131] Returning to
[0132]
[0133] For example, the original data-packet stream 14 may be a guaranteed service traffic (GST) stream and the spacers packets may include statistically multiplexed (SM) packets. The concepts of GST and SM data are introduced in the applicant's earlier patent, U.S. Pat. No. 9,521,093.
[0134] The queue 70 of lower-priority packets will not always contain packets of the right size to completely fill a current gap in the incoming data stream 14. The switch 10 therefore also uses the spacer-packet generator 13 to generate null spacer packets which are inserted when there is no appropriate lower-priority packet to fill a gap. This could be a partial gap, left after one or more lower-priority packets have already been inserted between a pair of the information-bearing packets from the original data stream 14. Thus vacant packet gaps in the incoming data-packet stream 14 are filled with lower priority data-packets (e.g. SM packets) as a first choice, and with generated spacer packets as a second choice.
[0135] At a receiving node, any generated spacer packets are discarded, the lower-priority data-packets may be extracted and output or processed, while the original high-priority data-packet stream 14 can be regenerated and output with the original gaps between the data-packets.
[0136] In some situations, it is not necessarily desirable to completely fill the gaps between the information-bearing packets. This can be because the PDV generated in a network, or in a node, or a component in a node, sometimes depends on packet sizes and on the gaps between the packets.
[0137]
[0138] To generate an augmented packet stream 15 having a pattern of packet sizes and gaps that minimizes the PDV, the packet-optimising module 10a converts the information-bearing packets of the received data stream 14 into packets that have an optimum packet size O. If a packet in the data-stream 14 is larger than the optimum sized packet, it is fragmented into two or more packets of optimum size O. When fragmenting, the packet being fragmented may not exactly fit into a whole number of optimally sized packets. Any remaining bytes may nevertheless be put into a packet of optimum size, with a predetermined indicator marking the end of the original packet that has been fragmented, and with the remaining bytes of the packet being left empty (e.g. having the value zero). For a packet shorter than the optimum packet size, the short packet may be filled into a larger packet of optimum size, again with an indicator marking the end of the short packet while the remaining bytes of the optimum sized packet are left empty (e.g. a series of bytes with value zero).
[0139] The converted packets are then sent to the gap-optimising module 10b. The gap-optimising module 10b generates optimized packet gap sizes in the augmented packet stream 15. It uses generated spacer packets from the packet generator 13, as previously described, but the lengths of the generated spacer packets are specified by the gap-optimising module 10b so as to achieve an optimized gap size OG for the gaps between the converted packets in the resulting augmented packet stream 15.
[0140]
[0141] The source network switch 10 may start inserting a generated spacer packet immediately whenever a predefined minimum gap-size is detected in the received packet stream 14. When using gap detection and gap filling where only complete packets (having a minimum size) are allowed in the system, it is necessary for a source network switch first to detect a gap of suitable size for a complete spacer packet to be inserted before inserting the spacer packet. However, when the system allows fragmented packets, insertion of a spacer packet may be started immediately without first looking for a gap of suitable size if immediate termination of the spacer packet insertion is possible on the arrival of a packet. Allowing spacer packet fragments in the system therefore allows the insertion of the spacer packets to start earlier than if only complete packets are allowed in the system.
[0142] A termination or fragmenting of a spacer packet may be performed using, for example, a pre-emption method as described in IEEE 802.1Qbu. It might be that a pre-defined minimum time is required for terminating a spacer packet. In this case, each incoming packet may be delayed by a fixed amount so that a spacer packet can be terminated sufficiently long before the packet needs to be scheduled onto the output.
[0143] For a bypassing packet stream of, e.g., 10 Gb/s, spacer packets of suitable size for filling gaps between data-packets completely, or leaving only a fixed gap between adjacent packets, may be generated and inserted as already described. As a result, when the packet stream including the spacer packets is transmitted through the network, the stream is effectively a constant data-rate stream, since any gaps that remain are of known length. When receiving the packets at the destination network switch, there may be a variation in the number of blank gap-bytes between packets if the packet stream has been subject to packet delay variation in the network. If the number of blank gap-bytes between all packets at the transmit side is predefined, this information may be used at the receiver side for reconstructing the original packet stream. The receiver may then first buffer the incoming packets and then send or play the packets out from the buffer again with the predefined number of blank gap-bytes between the packets. The packet-stream may then be restored as before it was subject to PDV.
[0144]
[0145] Whenever there is a long-term deviation in the number of gap bytes received, compared with an expected number of gap bytes for the number of packets received, over a time period, this indicates a frequency difference between the source switch and the destination switch. If the destination switch is running at a higher frequency, too few gap bytes will be found between the packets it receives compared with the pre-defined number of gap bytes output at the source switch. Conversely, if the destination switch runs at a lower frequency, too many gap bytes will be found between the packets it receives compared with the pre-defined number output by the source switch.
[0146] By monitoring the number of gap bytes at the destination switch and comparing this with the pre-defined number of gap bytes that were used when generating the augmented data stream at the source switch, the frequency deviation between the source switch and the destination switch may be calculated.
[0147]
[0148] Similarly, if a near constant bitrate stream is generated at the source switch, by inserting spacer packets, the data rate of the packets may itself be used by a destination switch for regaining the frequency of the source switch. At the receiver side, by monitoring the bitrate of the arriving packets, a frequency corresponding to the bitrate of the packets transmitted by the sender may be regenerated at the destination switch.
[0149] In general, as already explained, a packet generator may generate a spacer packet of suitable size to fill each gap optimally. An optimal filling will typically provide a minimum or constant number of gap bytes between adjacent packets in the augmented data stream.
[0150]
[0151] This illustrates a more general principal that, when packets in the lower bitrate link of bitrate N (e.g. 100 Mb/s) are converted to a link of higher bitrate M (e.g. 1 Gb/s), the time between the packets may be preserved, resulting in an expansion in the number of gap bytes by the factor M/N.
[0152] A destination node may convert the received packet stream back down to the original 100 Mb/s line rate. When doing this, it can correct for an PDV by reducing the gaps between the packets back to the predetermined fixed-length gap size, as previously described with reference to
[0153]
[0154]
[0155] At the demultiplexer 131, the individual streams may then be de-aggregated and reconstructed based on the knowledge of a maximum number of gap bytes between information-bearing packets and spacer packets. The spacer packets may then be removed by the demultiplexer 131 and the same method as described with reference to
[0156] It will be appreciated by those skilled in the art that the invention has been illustrated by describing one or more specific embodiments thereof, but is not limited to these embodiments; many variations and modifications are possible, within the scope of the accompanying claims.