This file is raw output from pdftotext and may not be ideal for distribution. If you are a maintainer for Hackipedia, please sit down when you have time and clean this text version up. Source PDF: /mnt/main/jmc-storage/docs/ITU/ITU-T H.226 Channel aggregation protocol for multilink operation on circuit-switched networks.pdf Like all conversions the text below should be fully readable as UTF-8 unicode text. --------------------------------------------------------------- INTERNATIONAL TELECOMMUNICATION UNION ITU-T H.226 TELECOMMUNICATION (09/98) STANDARDIZATION SECTOR OF ITU SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS Infrastructure of audiovisual services – Transmission multiplexing and synchronization Channel aggregation protocol for multilink operation on circuit-switched networks ITU-T Recommendation H.226 (Previously CCITT Recommendation) ITU-T H-SERIES RECOMMENDATIONS AUDIOVISUAL AND MULTIMEDIA SYSTEMS Characteristics of transmission channels used for other than telephone purposes H.10–H.19 Use of telephone-type circuits for voice-frequency telegraphy H.20–H.29 Telephone circuits or cables used for various types of telegraph transmission or H.30–H.39 simultaneous transmission Telephone-type circuits used for facsimile telegraphy H.40–H.49 Characteristics of data signals H.50–H.99 CHARACTERISTICS OF VISUAL TELEPHONE SYSTEMS H.100–H.199 INFRASTRUCTURE OF AUDIOVISUAL SERVICES General H.200–H.219 Transmission multiplexing and synchronization H.220–H.229 Systems aspects H.230–H.239 Communication procedures H.240–H.259 Coding of moving video H.260–H.279 Related systems aspects H.280–H.299 Systems and terminal equipment for audiovisual services H.300–H.399 Supplementary services for multimedia H.450–H.499 For further details, please refer to ITU-T List of Recommendations. ITU-T RECOMMENDATION H.226 CHANNEL AGGREGATION PROTOCOL FOR MULTILINK OPERATION ON CIRCUIT-SWITCHED NETWORKS Summary This Recommendation is a channel aggregation protocol for multilink operation on circuit-switched networks. It is intended for use in applications where low latency and high efficiency are important considerations, such as H.324 multimedia telephony. Unlike synchronous time-division-multiplexing channel aggregation protocols such as Recommendation H.221 and ISO/IEC 13871 ("BONDING"), this Recommendation has the ability to operate with a changing number of channels with arbitrary, differing, or continuously varying bit rates (including modems according to Recommendation V.34) as well as fixed-rate channels (such as ISDN B-channels). Unlike packet-oriented channel aggregation protocols such as RFC 1990 ("PPP Multilink Protocol"), this Recommendation finely distributes payload octets across different channels, simultaneously minimizing latency and overhead. Source ITU-T Recommendation H.226 was prepared by ITU-T Study Group 16 (1997-2000) and was approved under the WTSC Resolution No. 1 procedure on the 25th of September 1998. FOREWORD ITU (International Telecommunication Union) is the United Nations Specialized Agency in the field of telecommunications. The ITU Telecommunication Standardization Sector (ITU-T) is a permanent organ of the ITU. The ITU-T is responsible for studying technical, operating and tariff questions and issuing Recommendations on them with a view to standardizing telecommunications on a worldwide basis. The World Telecommunication Standardization Conference (WTSC), which meets every four years, establishes the topics for study by the ITU-T Study Groups which, in their turn, produce Recommendations on these topics. The approval of Recommendations by the Members of the ITU-T is covered by the procedure laid down in WTSC Resolution No. 1. In some areas of information technology which fall within ITU-T’s purview, the necessary standards are prepared on a collaborative basis with ISO and IEC. NOTE In this Recommendation, the expression "Administration" is used for conciseness to indicate both a telecommunication administration and a recognized operating agency. INTELLECTUAL PROPERTY RIGHTS The ITU draws attention to the possibility that the practice or implementation of this Recommendation may involve the use of a claimed Intellectual Property Right. The ITU takes no position concerning the evidence, validity or applicability of claimed Intellectual Property Rights, whether asserted by ITU members or others outside of the Recommendation development process. As of the date of approval of this Recommendation, the ITU had not received notice of intellectual property, protected by patents, which may be required to implement this Recommendation. However, implementors are cautioned that this may not represent the latest information and are therefore strongly urged to consult the TSB patent database. © ITU 1998 All rights reserved. No part of this publication may be reproduced or utilized in any form or by any means, electronic or mechanical, including photocopying and microfilm, without permission in writing from the ITU. ii Recommendation H.226 (09/98) CONTENTS Page 1 Overview .................................................................................................................... 1 2 References .................................................................................................................. 1 3 Definitions.................................................................................................................. 1 4 Format conventions .................................................................................................... 2 4.1 Numbering convention............................................................................................... 2 4.2 Order of bit transmission............................................................................................ 3 4.3 Field-mapping convention.......................................................................................... 3 5 Protocol definition...................................................................................................... 3 5.1 Protocol overview....................................................................................................... 3 5.2 Header format............................................................................................................. 4 5.2.1 FLAG ............................................................................................................ 6 5.2.2 CONTROL.................................................................................................... 6 5.2.3 SEQUENCE NUMBER................................................................................ 7 5.2.4 CHANNEL TAG .......................................................................................... 7 5.2.5 CHANNEL PROPORTION.......................................................................... 7 5.2.6 DATA CRC................................................................................................... 7 5.2.7 HEADER CRC ............................................................................................. 8 5.3 Procedures .................................................................................................................. 8 5.3.1 Data transmission.......................................................................................... 8 5.3.2 Data reception ............................................................................................... 12 Appendix I – Example of Channel Reference Model operation.............................................. 15 Recommendation H.226 (09/98) iii Recommendation H.226 CHANNEL AGGREGATION PROTOCOL FOR MULTILINK OPERATION ON CIRCUIT-SWITCHED NETWORKS (Geneva, 1998) 1 Overview This Recommendation describes a protocol for aggregation of data over multiple independent channels. The protocol is designed to achieve the following goals: • low latency transmission even at very low bit rates (including POTS modem rates); • low overhead even at very low bit rates (including POTS modem rates); • the ability to accommodate an arbitrary number of channels; • the ability to accommodate channels of arbitrary bit rate; • the ability to accommodate channels of differing bit rate; • the ability to accommodate channels of continuously varying bit rate; • the ability to accommodate unidirectional or bidirectional channels; • independence from channel order; • the ability for channels to drop out or be added arbitrarily; • low implementation complexity. 2 References The following ITU-T Recommendations and other references contain provisions which, through reference in this text, constitute provisions of this Recommendation. At the time of publication, the editions indicated were valid. All Recommendations and other references are subject to revision; all users of this Recommendation are therefore encouraged to investigate the possibility of applying the most recent edition of the Recommendations and other references listed below. A list of the currently valid ITU-T Recommendations is regularly published. [1] ISO/IEC 3309:1993, Information Technology – Telecommunications and information exchange between systems – High-level data link control (HDLC) procedures – Frame Structure. 3 Definitions This Recommendation defines the following terms: 3.1 channel: A single unidirectional data stream over which data is transmitted. Channel aggregation involves transmission of data over more than one channel. 3.2 channel reference model: A model used by the transmitter and receiver to maintain synchronization of the channel aggregation rule. 3.3 channel set: The set of Channels over which a given Data Set is transmitted. Recommendation H.226 (09/98) 1 3.4 data set: A portion of the input data stream to be transmitted to which a single channel aggregation rule is applied. Transmission of a Header Set delineates a given Data Set from the previous Data Set and specifies the channel aggregation rule to be used. 3.5 header: A collection of parameters whose beginning is marked by one or more Flags. A Header may either be part of a Header Set, delineating the beginning of a Data Set, or may be used on one or more channels for fill insertion. 3.6 header set: The set of Headers that delineate the beginning of a Data Set. Each Header in a Header Set is transmitted over a different Channel in the Channel Set. 3.7 maximum header interval: The maximum allowed duration of a Data Set. The value of the Maximum Header Interval is not specified in this Recommendation. 3.8 maximum inter-FLAG length: The maximum amount of data that is allowed to be sent between FLAGs on any one Channel. The data counted between FLAGs shall include the portion of the Header following a FLAG and any subsequent Samples prior to the next FLAG. This count shall not include any zeros inserted for transparency control. The Maximum Inter-FLAG Length applies to any FLAGs, including those used to mark the beginning of a Header Set as well as those used for fill insertion. The default value for this Maximum Inter-FLAG Length is 65 534 octets, unless another value is specified by another Recommendation making use of this Recommendation. 3.9 maximum transmit skew: The largest allowed skew between Channels in a Channel Set at the transmitter. The skew is defined as the difference between the maximum and minimum, across all Channels, of the time duration that a bit of data takes from appearance from the higher layer protocol until it is transmitted over one of the Channels. 3.10 sample: The smallest unit of data which is always kept contiguous when distributing data among multiple channels. The size of the Sample is 8 bits. 4 Format conventions 4.1 Numbering convention The numbering convention used in this Recommendation is shown in Figure 1. Bits are shown grouped into octets. The bits of a single octet are shown horizontally and numbered from 1 through 8. Multiple octets are shown vertically. 8 7 6 5 4 3 2 1 Octet 1 2 3 4 N T1604670-98 Figure 1/H.226 – Numbering convention 2 Recommendation H.226 (09/98) 4.2 Order of bit transmission The octets are transmitted in ascending numerical order. Within each octet, bit 1 is the first bit to be transmitted. 4.3 Field-mapping convention When a field is contained within a single octet, the lowest-numbered bit of the field represents the lowest-order value (or the least significant bit). When a field spans more than one octet, the highest-numbered bit of the first octet represents the highest-order value, and the lowest-numbered bit of the last octet represents the lowest-order value. An exception to the preceding field-mapping convention are the CRC parameters. In these cases, the lowest-numbered bit of the first octet is the highest-order term of the polynomial representing the CRC, and the highest-numbered bit of the last octet is the lowest-order term of the polynomial representing the CRC. 5 Protocol definition 5.1 Protocol overview This Recommendation acts as an additional protocol layer inserted below any protocol that would normally transmit data over a single data channel. The interface from the higher layer protocol is a stream of bits, emulating a synchronous serial channel. The result of the channel aggregation operation is to produce data to be transmitted on a number of separate output Channels. At the receiver, the data from each of these Channels is recombined to reconstruct the original data stream presented to the channel aggregation layer at the transmitter. The channel aggregation operation divides the input data stream into Samples of 8 bits each. Each Sample is transmitted on one of the available Channels. The channel aggregation operation can proportionally distribute Samples among all available Channels – accounting for their relative data rates – so that as much as possible of the total available bandwidth is used and latency can be kept to a minimum. In order to reconstruct the original data stream at the receiver, the receiver must be able to determine which Samples were placed on which Channel. This is done by means of a Channel Reference Model that operates in synchrony at both the transmitter and receiver. For the Channel Reference Model to operate effectively, it must depend on the relative rates of all Channels in use. If the relative rates vary (or if the estimate of the relative rates vary) or if the number of Channels in use changes, the model must be updated with this new information. The Channel Reference Model is updated by transmission of overhead information. A portion of the input data stream over which the Channel Reference Model operates autonomously without any updates is called a Data Set (see Figure 2). A Data Set may be of arbitrary length – a Data Set continues indefinitely until another Data Set begins in its place. The beginning of a Data Set is marked by transmission of a Header Set. A Header Set consists of a Header transmitted on each Channel to be used for this Data Set (the set of all Channels to be used by a Data Set is referred to as its Channel Set). The Header Set includes all of the information needed to synchronize the Channel Reference Models at the transmitter and receiver for the duration of the Data Set. Recommendation H.226 (09/98) 3 A Data Set may continue as long as the current Channel Reference Model accurately reflects the actual rates of the Channels in use (new Data Sets should also be started periodically to avoid significant error propagation). NOTE – No explicit mechanism for extensibility of H.226 is provided within the protocol itself. It is assumed that the negotiation into H.226 is done using an out-of-band mechanism, and that this mechanism would also be able to negotiate the use of any future versions of this Recommendation by mutual agreement between endpoints. Data Stream from Higher Layers Data Set 1 Data Set 2 C h Channel 0 a n Channel 1 n e . l . . S e Channel M – 1 t T1604680-98 Header Set 1 Header Set 2 Samples (8-bits) Time Figure 2/H.226 – Transmission of channel aggregated data 5.2 Header format The Header contains the following parameters: 1) FLAG; 2) CONTROL; 3) SEQUENCE NUMBER; 4) CHANNEL TAG; 5) CHANNEL PROPORTION; 6) DATA CRC; 7) HEADER CRC. The format of the Header is shown in Figure 3. The shaded octets are mandatory in all Headers, while the presence of the unshaded octets depends on the use of the Header. 4 Recommendation H.226 (09/98) Octet FLAG FLAG CONTROL SEQUENCE 0, 1, 2, or 4 NUMBER 0, 1, 2, or 4 CHANNEL TAG CHANNEL 0, 1, 2, or 4 PROPORTION DATA CRC HEADER CRC T1604690-98 Figure 3/H.226 – Header format Recommendation H.226 (09/98) 5 5.2.1 FLAG The FLAG parameter of the Header shall contain one or more FLAG PATTERNs in contiguous succession. Each FLAG PATTERN is 8 bits in length and shall be set to the binary value 01111110. 5.2.2 CONTROL The CONTROL parameter contains a series of fields defined in Figure 4 and Table 1. D L CP CT SN Figure 4/H.226 – Format of the CONTROL parameter Table 1/H.226 – Definition of fields in the CONTROL parameter Field Value Meaning SN 00 This Header does not include a SEQUENCE NUMBER parameter. This value shall only be used when the Header is being used for fill insertion. This value shall not be used when the Header is part of a Header Set. When this value is used, all remaining bits of the CONTROL parameter shall be zero and the Header shall not include a CHANNEL TAG nor a CHANNEL PROPORTION parameter. 01 A 1-octet SEQUENCE NUMBER parameter is included in this Header. 10 A 2-octet SEQUENCE NUMBER parameter is included in this Header. 11 A 4-octet SEQUENCE NUMBER parameter is included in this Header. CT 00 This Header does not include a CHANNEL TAG parameter. This value shall not be used unless there is exactly one Header in the Header Set. 01 A 1-octet CHANNEL TAG parameter is included in this Header. 10 A 2-octet CHANNEL TAG parameter is included in this Header. 11 A 4-octet CHANNEL TAG parameter is included in this Header. CP 00 This Header does not include a CHANNEL PROPORTION parameter. If this value is used, the receiver shall use a CHANNEL PROPORTION value of one for this Channel. 01 A 1-octet CHANNEL PROPORTION parameter is included in this Header. 10 A 2-octet CHANNEL PROPORTION parameter is included in this Header. 11 A 4-octet CHANNEL PROPORTION parameter is included in this Header. L 1 The CHANNEL TAG in this Header is the largest valued CHANNEL TAG over all Channels in the Channel Set. 0 All other cases. D 1 This Header includes a DATA CRC parameter. 0 This Header does not include a DATA CRC parameter. 6 Recommendation H.226 (09/98) 5.2.3 SEQUENCE NUMBER The SEQUENCE NUMBER parameter contains a numerical value that represents the temporal order of the Header Set relative to all other Header Sets that have been or will be transmitted. The value of the SEQUENCE NUMBER parameter for all Headers in a Header Set shall be identical. For each successive Header Set, the SEQUENCE NUMBER shall be incremented by one, modulo 2N, where N is the number of bits in the SEQUENCE NUMBER parameter for the Header Set, as indicated by the value of the SN field of the CONTROL parameter, and the SEQUENCE NUMBER is represented as an unsigned binary integer. The number of bits, N, in the SEQUENCE NUMBER parameter shall be identical for all Headers in a Header set, and shall be chosen such that the difference between the maximum and minimum number of Header Sets that could be in transit over any channel is less than 2N. An estimate of the possible number of Header Sets in transit should account for the maximum end-to-end skew between channels, the maximum allowed skew between transmit buffers for each channel (see 5.3.1.6), and the range of temporal spacing allowed between Header Sets. 5.2.4 CHANNEL TAG The CHANNEL TAG parameter contains a unique identifier for each Header in the Header Set. For a Header Set containing M Headers, each Header shall contain a unique CHANNEL TAG whose value shall be in the range 0 through M − 1, represented as an unsigned binary integer. The particular CHANNEL TAG chosen for a given Header is arbitrary, but all values in the range 0 through M − 1 shall be used for some Header in the Header Set. If there is exactly one Header in the Header Set, the CHANNEL TAG parameter may be omitted (indicated by a value of 00 for the CT field of the CONTROL parameter). 5.2.5 CHANNEL PROPORTION The CHANNEL PROPORTION parameter indicates the relative rate at which data is to be transmitted over the Channel corresponding to a given Header. This value is used in determining the allocation of data between Channels as defined by the Channel Reference Model. The CHANNEL PROPORTION represents an unsigned binary integer. The value of this integer indicates the ratio of the total data that is to be transmitted on the corresponding Channel. This ratio is equal to P/T, where P is the CHANNEL PROPORTION for this Channel, and T is the total of the CHANNEL PROPORTION parameters for all Channels in the Channel Set. If the CHANNEL PROPORTION is equal to one for a given Header, the CHANNEL PROPORTION parameter may be omitted from that Header (indicated by a value of 00 for the CP field of the CONTROL parameter). 5.2.6 DATA CRC The DATA CRC is an optional 16-bit CRC to allow detection of errors in the data from the previous Data Set on the corresponding channel. The presence of this parameter is indicated by a value of one in the D bit of the CONTROL parameter. The DATA CRC shall be computed according to the procedures defined for computing the 16-bit Frame Check Sequence (FCS) field in [1]. Unlike in [1], the CRC shall be computed only on the Samples of the Data Set on the corresponding Channel between the Header marking the beginning of the previous Data Set and the current Header. Any intervening fill Headers shall not be included in the CRC computation. Recommendation H.226 (09/98) 7 Use of this optional parameter by the receiver is beyond the scope of this Recommendation. 5.2.7 HEADER CRC The HEADER CRC is a 16-bit CRC to allow detection of errors in the Header contents. The HEADER CRC shall be computed according to the procedures defined for computing the 16-bit FCS field (Frame Check Sequence) in [1]. Unlike in [1], the CRC shall be computed only on the Header data. The CRC computation shall include all Header parameters between the FLAG and the HEADER CRC. 5.3 Procedures 5.3.1 Data transmission 5.3.1.1 Transmitter model The input to the transmitter is assumed to be a continuously running stream of bits, where one new bit becomes available at a time (an actual implementation may supply bits in larger groups than this). The input data stream is placed on the Input Queue of the transmitter. The operation of the transmitter can be divided into the transmit aggregator and the transparency control mechanism (see Figure 5). The results from the transmit aggregator are placed in Intermediate Transmit Queues – one for each Channel. Note that the Intermediate Transmit Queues must include means to distinguish between FLAGs intentionally transmitted as part of Headers, and emulated FLAGs that may be contained within the other data. Transparency control is performed on the data in the Intermediate Transmit Queues (see 5.3.1.5) and the results are placed in the Transmit Queues – again, one for each Channel. These queues are considered the final output of the transmitter. There may be some delay between the time that a particular group of bits is placed on a channel's Transmit Queue and the time that it is actually transmitted over the communications link. The transmitter shall have a means to determine the amount of this delay at any time. The transmitter is responsible for ensuring that the Transmit Queues do not underrun. Procedures to ensure this are given in 5.3.1.2 and 5.3.1.4. Processing of data for transmission is intended to be done continuously as new input data is supplied. It is not intended that a transmitter wait for an entire Data Set to arrive prior to processing the data for transmission. 8 Recommendation H.226 (09/98) Input Queue Channel Transmit Aggregator Reference Model Intermediate Channel Transmit Channel 0 Channel 1 Channel 2 ... M–1 Queues Transparency Control Transmit Channel Queues Channel 0 Channel 1 Channel 2 ... M–1 T1604700-98 Figure 5/H.226 – Transmitter Model 5.3.1.2 Data Set transmission The beginning of a new Data Set is marked by transmission of a Header Set. To begin a new Data Set, a transmitter shall determine the corresponding Channel Set – which Channels it intends to transmit the Data Set over. The Channel Set may include one or more Channels. Note that the Channel Set would normally include all available Channels. The transmitter shall then determine the content of each Header in the Header Set – one Header for each Channel in the Channel Set – based on the definition of the Header parameters in 5.2. For each Channel, the corresponding Header shall be placed on the Intermediate Transmit Queue of that Channel immediately following the last Sample of the previous Data Set to be transmitted on this Channel. Since the size of a Data Set is not defined a priori, transmission of the previous Data Set may be terminated at any Sample boundary. If there is a need to delay transmission of the new Data Set after termination of the previous one, additional FLAG PATTERNs may be included in the Header to take up the extra space and avoid underrun. Immediately following the Header on each Channel in the Channel Set, the data from the Data Set shall be transmitted. The rules for determining which portion of the Data Set is transmitted on which Channel is given by the Channel Reference Model (see 5.3.1.3). At the beginning of a Data Set, the Channel Reference Model shall be reset to its initial state. The Channel Reference Model shall also be given the number of Channels in the Channel Set as well as the CHANNEL TAG and CHANNEL PROPORTION value for each Channel. The data in the Data Set is divided into Samples of 8 bits each. The Channel Reference Model is used to determine which Channel each Sample should be transmitted over. For each Sample, the Channel Reference Model shall be incremented by one step. Each step of the Channel Reference Model results in a CHANNEL TAG. The transmitter shall place the Sample on the Intermediate Recommendation H.226 (09/98) 9 Transmit Queue of the Channel corresponding to the resulting CHANNEL TAG – the Channel over which the Header containing that CHANNEL TAG was transmitted for this Data Set. 5.3.1.3 Channel Reference Model The Channel Reference Model is a finite state machine that accepts the following parameters as input: • the number of Channels in the Channel Set; • the CHANNEL TAG for each Channel in the Channel Set; • the CHANNEL PROPORTION for each Channel in the Channel Set. The Channel Reference Model contains a series of separate state variables, one for each Channel in the Channel set, indexed by the CHANNEL TAG for that Channel. Each state variable is a signed integer value. The following state transition operations are defined by the Channel Reference Model: • Reset to the initial state When the Channel Reference Model is reset to its initial state, the value of all of its state variables shall exactly equal zero. • Increment the state by one step For each increment of the state by one step, the following procedure shall be applied in the order stated: 1) The value of the state variable for each channel shall be incremented by the value of the CHANNEL PROPORTION for that channel. 2) For all Channels, the state variable with the largest value is chosen. If there is more than one state variable with exactly the same value, then among those, the state variable corresponding to the smallest valued CHANNEL TAG is chosen. 3) The value T shall be subtracted from the value of the chosen state variable, where T is the sum of all of the CHANNEL PROPORTION values for all Channels in the Channel Set. 4) The CHANNEL TAG value corresponding to the chosen state variable shall be indicated as the result. All arithmetic operations in the above procedure shall result in no loss of precision. 5.3.1.4 Fill insertion The transmit aggregator shall prevent underrun of the Transmit Queues (the potential for underrun can occur as a result of a mismatch between the Channel Reference Model and the actual channel rates, or from other causes). If a Channel is at risk of underruning, the transmit aggregator shall insert fill data into the Intermediate Transmit Queue of that Channel of an amount sufficient to prevent such an underrun. NOTE – In some cases, fill may need to be inserted on more than one Channel, for example when the Input Queue contains no data to be transmitted. The fill data shall consist of a Header that contains one or more FLAG PATTERNs followed by a CONTROL parameter with 00 as the value of the SN field (see 5.2.2 for resulting restrictions on the Header format). A Header used for fill shall only include the FLAG, CONTROL, and HEADER CRC parameters. 10 Recommendation H.226 (09/98) Fill data shall be inserted into the Intermediate Transmit Queue of a Channel between successive Samples of the Data Set and shall not interrupt an individual Sample. Fill data shall not be inserted inside another Header. Fill insertion shall not affect the operation of the Channel Reference Model. The content of the Samples before and after the fill data shall not depend on the presence or length of the fill data. In effect, the fill insertion occurs after and independently from the operation of the transmit aggregator. 5.3.1.5 Transparency Data being transmitted on each Channel between successive FLAGs shall be processed using transparency control to eliminate the possibility of flag emulation in the data stream. For each Channel, for all data in the Intermediate Transmit Queue between FLAGs, the transmitter shall insert a "0" bit after all sequences of 5 contiguous "1" bits, and then place the data in the Transmit Queue of that Channel. 5.3.1.6 Buffer management A Data Set may continue indefinitely until one of the following criteria is reached: • When the skew between any two Transmit Queues for all Channels exceeds the Maximum Transmit Skew. The skew is defined as the difference between the maximum and minimum values of the estimated amount of time in the Transmit Queue across all Channels in the Channel Set (assuming no skew is introduced between the Intermediate Transmit Queues). The amount of time in the Transmit Queue is measured based on the fullness of the queue and the estimated rate of that Channel. • When a time period exceeding the Maximum Header Interval has passed since the beginning of the Data Set. New Data Sets shall be started periodically in order to avoid indefinite propagation of errors. • When the Maximum Inter-FLAG Length has been reached on any Channel. A new Data Set shall be started as needed to avoid exceeding this limit. • At any other time as determined by the transmitting system. NOTE – Varying skew between the Transmit Queues results from a mismatch between the Channel Reference Model and the actual relative throughput on each Channel. This mismatch can arise due to: 1) inaccurate measurement of the channel rates used to determine the CHANNEL PROPORTION values for the Channel Reference Model; 2) rounding of the measured channel rates when generating the CHANNEL PROPORTION values; 3) changes in the actual channel rates over time; or 4) variability in the usable channel throughput due to the transparency control used in this protocol. Causes 1) and 2), above, could only occur in the case of networks where the exact rates are not known a priori. These would tend to result in a steady drift in skew over the course of a Data Set. Cause 3) would only occur in the case of networks where a rate change is possible, and would result in unpredictable variations in the skew. Cause 4) would tend to result in apparently random fluctuations in the skew, but would not be likely to cause systematic drift since, on average, the rate of transparency insertion on each Channel should be approximately proportional to the rate of that Channel. If the Maximum Transmit Skew is exceeded, the transmitter must employ a locally defined buffer management strategy to determine how best to adjust the CHANNEL PROPORTION values to be used in the subsequent Data Set to bring the skew back within the allowable range. In general, the transmitter should monitor the skew and begin new header sets with adjusted CHANNEL PROPORTION values more frequently than is required in order to keep the skew well within the Recommendation H.226 (09/98) 11 allowable limits defined by the Maximum Transmit Skew. This is particularly important since the measure of skew is based on the estimated rate of the channel and may not accurately reflect the actual skew. NOTE – The values of the Maximum Transmit Skew and Maximum Header Interval are not specified in this Recommendation. Since these values are expected to be application dependent, it is expected that these values would be defined as part of a higher layer protocol that makes use of the protocol defined in this Recommendation. 5.3.1.7 Adding and removing Channels Channels may be added or removed during transmission at any time. When a new Channel becomes available, no change is made to the operation of the Data Set being transmitted. Any time after the Channel becomes available, the transmitter may include the new Channel in the Channel Set associated with any subsequent Data Set. If a Channel is to become unavailable, the transmitter shall begin a new Data Set which does not include this Channel in its associated Channel Set, and shall not include this Channel in any subsequent Channel Sets unless this Channel later becomes available. If the loss of the Channel is under the control of the transmitter, the transmitter shall not make the Channel unavailable until it has begun the new Data Set and until all data from previous Data Sets have been transmitted over the Channel. If a Channel becomes unavailable without prior knowledge by the transmitter, data from the current Data Set not yet transmitted over that Channel prior to the beginning of the new Data Set will be lost. 5.3.2 Data reception 5.3.2.1 Receiver model The receiver receives data from all available Channels. The received data from each Channel is placed on a Receive Queue for that Channel. The receiver processes the data in each Receive Queue according to the procedures defined in this subclause. The operation of the receiver can be divided into the transparency control mechanism and the receive recombiner (see Figure 6). FLAG detection and transparency control (see 5.3.2.2) is performed on the data from each of the Receive Queues and the results are placed in Intermediate Receive Queues. Note that the Intermediate Receive Queues must include means to distinguish between FLAGs received as part of Headers, and emulated FLAGs that may be contained within payload data. The receive recombiner operates on the data in the Intermediate Receive Queues and the result is placed in the Output Queue. This queue is considered the final output of the receiver. Processing of data for reception is intended to be done continuously as new input data is supplied. It is not intended that a receiver wait for an entire Data Set to arrive prior to processing the data from that Data Set. 12 Recommendation H.226 (09/98) Receive Channel 0 Channel 1 Channel 2 Channel Queues ... M–1 FLAG Detection/Transparency Control Intermediate Channel Receive Channel 0 Channel 1 Channel 2 Queues ... M–1 Channel Receive Recombiner Reference Model Output Queue T1604710-98 Figure 6/H.226 – Receiver model 5.3.2.2 Transparency A receiver shall continuously examine the data received on the Receive Queue of each available Channel, searching for FLAGs. If a FLAG is detected, this signifies the presence of a Header. Data being received on each Channel between successive FLAGs shall be processed using transparency control to reverse the transparency control process used by the transmitter. For each Channel, for all data in the Receive Queue between FLAGs, the receiver shall discard any "0" bit which directly follows 5 contiguous "1" bits and place the resulting data on the Intermediate Receive Queue for that Channel. If 7 or more contiguous "1" bits are detected in the Receive Queue, this indicates erroneous data. It is left to the receiver’s discretion whether or not to continue processing received information prior to reception of a subsequent valid FLAG. NOTE – To account for the skew between Channels, the Receive Queues must each be able to accommodate an amount of data corresponding to the Maximum Transmit Skew plus that maximum amount of skew within the communications network that the receiver is designed to accommodate (the skew within the communications network is the difference in end-to-end delay between channels introduced by the communications network between the two endpoints). 5.3.2.3 Data Set reception Reception of data from a particular Data Set begins with the reception of all Headers in the corresponding Header Set. A receiving system determines when a complete Header Set has been received by examining the CONTROL, SEQUENCE NUMBER, and CHANNEL TAG parameters in the received Headers (see 5.2). Headers are considered to be part of the same Header Set if they contain identical Sequence Numbers. A receiver determines the number of Headers in the Header Set (which is equal to the Recommendation H.226 (09/98) 13 number of Channels in the Channel Set) when it receives a Header containing either no CHANNEL TAG (indicated by a value of 00 for the CT field of the CONTROL parameter), in which case it knows that the number of Headers is exactly one, or when it receives a Header with the value of one for the L-bit CONTROL parameter, in which case the number of Headers is one plus the value of the CHANNEL TAG contained in this Header. A complete Header Set consists of all Headers with CHANNEL TAG values between zero and the value contained in the Header with the L bit set to one. All Headers shall be examined to determine if there are errors in the contents of the Header. The HEADER CRC shall be used to determine whether errors have occurred according to the procedures defined in 5.2.7. A Header received in error shall be ignored. If this Header is part of a Header Set, this may mean that the complete Header Set is never fully received. If this is the case, the receiver shall wait until a complete Header Set for a subsequent Data Set before continuing to process any data for reception. In this case, the complete Data Set with the erroneous Header is lost. During the time that the receiver is waiting for all Headers in a Header Set to be received, data following any Headers in that Header Set shall be held until all Headers have been received. Only when all Headers have been received can recombination of the Data Set begin. Once all Headers have been received for a given Header Set, the data following each of the headers can begin to be processed in order to reconstruct the transmitted Data Set. The rules for determining which portion of the Data Set is to be extracted from which Channel is given is given by the Channel Reference Model (see 5.3.1.3). At the beginning of a Data Set, the Channel Reference Model is reset to its initial state. It is also given the number of Channels in the Channel Set as well as the CHANNEL TAG and CHANNEL PROPORTION values received in the Header for each Channel. The Channel Reference Model is used to determine which Channel each Sample is to be received over. For each Sample to be extracted into the reconstructed Data Set, the Reference Model is incremented by one step. Each step of the Channel Reference Model results in a CHANNEL TAG. The receiver shall extract the Sample on the Intermediate Receive Queue of the Channel corresponding to the resulting CHANNEL TAG – the Channel over which the Header containing that CHANNEL TAG was received for this Data Set. If there have been no errors in a given Data Set, the receive recombiner will extract the complete Data Set from the Intermediate Receive Queue prior to the extraction of any Headers for the subsequent Data Set. However, if errors have occurred on one or more Channels, it is possible that the Channel Reference Model indicates that data is to be extracted from a Channel in which there is no more data prior to the subsequent Header, while on other Channels, data from the current Data Set still remains. If this condition occurs, the receiver shall immediately discontinue processing of the current Data Set and begin processing of the subsequent Data Set. 5.3.2.4 Fill Removal Reception of a Header with the value 00 as the value of the SN field (and the remainder of the Header set according to 5.2.2) indicates that the Header is being used for fill insertion on that Channel. When the receive recombiner receives such a Header, it shall remove the complete Header from the Intermediate Receive Queue and discard it. It shall continue processing subsequent data on that Channel as if the fill Header had never been received. 14 Recommendation H.226 (09/98) APPENDIX I Example of Channel Reference Model operation In this appendix, an example of the operation of the Channel Reference Model is presented. This example shows operation over a single Data Set with 4 channels in the Channel Set. The current data rate of each channel is assumed to have been measured by locally determined means. Along with the measured data rate, the relative fullness of each Transmit Queue is used via locally determined rules to determine the desired relative proportion of data to be transmitted over each channel for this Data Set. From this, the value of the CHANNEL PROPORTION parameter is set (using the numerators of the desired relative proportion when represented as a fraction with a common denominator). These values are shown in Table I.1. Table I.1/H.226 – Parameters used for example Channel Reference Model CHANNEL Desired Desired proportion CHANNEL TAG proportion (as fraction with PROPORTION common denominator) Channel 0 0 0.5 10/20 10 Channel 1 1 0.15 3/20 3 Channel 2 2 0.15 3/20 3 Channel 3 3 0.2 4/20 4 In operation, at the beginning of the Data Set, the Channel Reference Model is provided with the list of CHANNEL PROPORTION values for each CHANNEL TAG, and is reset so that its internal state variables are set to zero. The value for T, the total of the CHANNEL PROPORTION values used in the model, is equal to 20. Table I.2 shows the initial iterations of the Channel Reference Model. The result for each iteration, shown in the right-most column, indicates, in the case of the transmitter, which Channel the corresponding Sample of data should be placed on, and in the case of the receiver, which Channel the corresponding Sample of data should be extracted from. For each step of the Channel Reference Model corresponding to one Sample, Table I.2 also shows the effect of each of the four steps listed in 5.3.1.3 on the internal state variables. For steps 2) and 3), the "chosen" state variable is indicated by the shaded region. Note that the sequence produced by the Channel Reference Model repeats with a period equal to the value of the least common denominator of the relative proportions of the channels – in this case, 20. Also note that over this period, for each channel, that channel is "chosen" a number of times that exactly equals the value of the numerator of the proportion represented as a fraction using the least common denominator. Recommendation H.226 (09/98) 15 Table I.2/H.226 – Operation of example Channel Reference Model State Variables Sample Step 0 1 2 3 Resulting Channel Initialization 0 0 0 0 1 1 10 3 3 4 2 10 3 3 4 3 −10 3 3 4 4 −10 3 3 4 0 2 1 0 6 6 8 2 0 6 6 8 3 0 6 6 −12 4 0 6 6 −12 3 3 1 10 9 9 −8 2 10 9 9 −8 3 −10 9 9 −8 4 −10 9 9 −8 0 4 1 0 12 12 −4 2 0 12 12 −4 3 0 −8 12 −4 4 0 −8 12 −4 1 5 1 10 −5 15 0 2 10 −5 15 0 3 10 −5 −5 0 4 10 −5 −5 0 2 6 1 20 −2 −2 4 2 20 −2 −2 4 3 0 −2 −2 4 4 0 −2 −2 4 0 7 1 10 1 1 8 2 10 1 1 8 3 −10 1 1 8 4 −10 1 1 8 0 8 1 0 4 4 12 2 0 4 4 12 3 0 4 4 −8 4 0 4 4 −8 3 16 Recommendation H.226 (09/98) Table I.2/H.226 – Operation of example Channel Reference Model (continued) State Variables Sample Step 0 1 2 3 Resulting Channel 9 1 10 7 7 −4 2 10 7 7 −4 3 −10 7 7 −4 4 −10 7 7 −4 0 10 1 0 10 10 0 2 0 10 10 0 3 0 −10 10 0 4 0 −10 10 0 1 11 1 10 −7 13 4 2 10 −7 13 4 3 10 −7 −7 4 4 10 −7 −7 4 2 12 1 20 −4 −4 8 2 20 −4 −4 8 3 0 −4 −4 8 4 0 −4 −4 8 0 13 1 10 −1 −1 12 2 10 −1 −1 12 3 10 −1 −1 −8 4 10 −1 −1 −8 3 14 1 20 2 2 −4 2 20 2 2 −4 3 0 2 2 −4 4 0 2 2 −4 0 15 1 10 5 5 0 2 10 5 5 0 3 −10 5 5 0 4 −10 5 5 0 0 16 1 0 8 8 4 2 0 8 8 4 3 0 −12 8 4 4 0 −12 8 4 1 17 1 10 −9 11 8 2 10 −9 11 8 3 10 −9 −9 8 4 10 −9 −9 8 2 Recommendation H.226 (09/98) 17 Table I.2/H.226 – Operation of example Channel Reference Model (concluded) State Variables Sample Step 0 1 2 3 Resulting Channel 18 1 20 −6 −6 12 2 20 −6 −6 12 3 0 −6 −6 12 4 0 −6 −6 12 0 19 1 10 −3 −3 16 2 10 −3 −3 16 3 10 −3 −3 −4 4 10 −3 −3 −4 3 20 1 20 0 0 0 2 20 0 0 0 3 0 0 0 0 4 0 0 0 0 0 21 1 10 3 3 4 2 10 3 3 4 3 −10 3 3 4 4 −10 3 3 4 0 … … … … … … … Based on the results of the example Channel Reference Model, Figure 7 shows the resulting sequence of Samples on each of the four channels. In the figure, the narrower channels represent the slower channels, where each sample would take correspondingly longer to transmit. (The figure shows the samples transmitted with the smallest possible transmit skew given the transmission sequence defined by the example Channel Reference Model. In a realistic implementation, the skew between channels would generally be greater than this.) 18 Recommendation H.226 (09/98) Samples from Higher Layers 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Channel 0 C 1 3 6 7 9 12 14 15 18 20 h a n n Channel 1 e 4 10 16 l S Channel 2 5 11 17 e t Channel 3 2 8 13 19 T1604720-98 Time Figure 7/H.226 – Sample sequence based on example Channel Reference Model Recommendation H.226 (09/98) 19 ITU-T RECOMMENDATIONS SERIES Series A Organization of the work of the ITU-T Series B Means of expression: definitions, symbols, classification Series C General telecommunication statistics Series D General tariff principles Series E Overall network operation, telephone service, service operation and human factors Series F Non-telephone telecommunication services Series G Transmission systems and media, digital systems and networks Series H Audiovisual and multimedia systems Series I Integrated services digital network Series J Transmission of television, sound programme and other multimedia signals Series K Protection against interference Series L Construction, installation and protection of cables and other elements of outside plant Series M TMN and network maintenance: international transmission systems, telephone circuits, telegraphy, facsimile and leased circuits Series N Maintenance: international sound programme and television transmission circuits Series O Specifications of measuring equipment Series P Telephone transmission quality, telephone installations, local line networks Series Q Switching and signalling Series R Telegraph transmission Series S Telegraph services terminal equipment Series T Terminals for telematic services Series U Telegraph switching Series V Data communication over the telephone network Series X Data networks and open system communications Series Y Global information infrastructure Series Z Programming languages