Abstract:
Access protection and priority control is performed in a network with distributed queueing by the use of counters and a memory. The counters accumulate a number of passing request bits, the number of packets waiting in a queue, request bits generated, busy bits changed by station, and the numbers of free packets which have passed the station on the communication medium. These request bits indicate that another station wishes to issue a data packet. The counters decrement when a free cell passes the station. The counters indicate a queue placing. The memory stores upper and lower threshold values. These threshold values are compared to the counter values to control the issuing of data packets from each station onto the medium. The imposed thresholds ensure that the bandwidth available to each station is maintained despite traffic load conditions, transmission rates, or length of the medium. This mechanism is applicable to the static and dynamic control of bandwidth usage of stations and nodes used in the I.E.E.E. 802.6 Draft Standard for Distributed Queue Dual Bus Metropolitan Area Networks.

Description:
FIELD OF THE INVENTION 
     This invention relates to access protection and priority control in environments required to have distributed queuing access control. The processes to be described that embody the invention are applicable to a large number of environments. These environments have the common elements of high speed digital data transfer in packets along a digital data bus communications medium between a plurality of contending stations distributed linearly along that bus medium. 
     BACKGROUND OF THE INVENTION 
     The comprises invention alone and in combination the setting and control of data packet buffer thresholds as delimited in one or more counters within a station, and includes limits to the rate of request to send data packets and limits to the total number of packets issued by a station. In brief, counters and limits (thresholds) on counters, and queues and limits (thresholds) on queues, are used to control transmission (for example, transmission rate) processes on the bus communications medium. 
     Another environment in which this invention may be applied is the interaction between the Central Processing Unit (CPU) of a computer and the Peripheral Interface Adaptor (PIA) and/or any other component attached which are required to contend for access on to a high speed computer bus architecture utilising any length or speed digital data packet transfer communications medium. 
     The invention is also applicable to a wide variety of other digital data transfer environments allowing for partial or full implementation of the mechanism, since partial and full application of the mechanism provides different advantages, problem elimination and economies of operation for each of the applicable environments. 
     SUMMARY OF THE INVENTION 
     In order to describe the invention a preferred environment and physical application architecture will now be described, however, it will be understood by those skilled in this particular field and those in other related fields that the preferred embodiment is purely a means of one implementation of the invention. 
     This invention in its partial or full implementation is applicable in one embodiment to the proposed Institute of Electrical and Electronic Engineers (I.E.E.E.) Standard 802.6 Distributed Queue Dual Bus (DQDB) Metropolitan Area Network (MAN) Draft D.O. of Jun. 24, 1988 and, provides hitherto unknown advantages and advances to the implementation proposed therein. 
     I.E.E.E. 802.6 Draft Standard is a combined Medium Access Control (MAC) and Physical Layer application. These layers are respectively layers 2 and 1 of the Open Systems Interconnect (OSI) Seven Layer Reference Model. 
     It is important to appreciate that the invention is applicable to all seven layers of this Model apart from many other data transfer environments. I.E.E.E. 802.6 utilises a Dual Bus Queued Packet and Synchronous Switch (QPSX) which is a distributed switch/network that will fulfill the requirements of a public MAN. The Switch architecture of QPSX is based around two contra-directional buses, FIG. 1. These two buses involve a dual loop of transfer medium (nominally optical fibre but not necessarily so) arranged as a logical bus. One unit serving as master and the bus configuration thus eliminating the need to remove data from the medium as is done in ring configurations. 
     Writing to the bus is done only in &#34;empty&#34; slots/packets/cells so that an OR function suffices to combine the one bits `1` of the data with the totally all `0` slot packet on the bus. This simplifies the circuitry of each station which is in series with the bus traffic. The fact that the loop always has an opening provides a very important fault tolerance. 
     The use of dual buses and a plurality of contending input/output data sources called stations, also called nodes, has created the need for a distributed queuing protocol. A process called scheduling used, in this the prior art, which comprises the sending of reservations &#34;up stream&#34; when a station wants to transmit &#34;down stream&#34;. Each station keeps an up/down counter running continuously, one for each transmission direction. When a slot reservation request goes by on the upstream bus, the counter is incremented by one. When an empty slot/packet/cell goes by downstream, the counter is decremented by one. A non-zero value in the counter means that there are unsatisfied requests for packets in the downstream direction, if it is zero, there are no outstanding requests. 
     When the station wants to transmit, it takes a sample of the up/down counter for the direction of transmission. If its contents are zero, it transmits in the next vacant slot. If the counter is non-zero, then the sample is counted down as empty packets go by in the downstream direction. These empty packets will satisfy the existing requests. On the next empty packet, the station is free to transmit. 
     The implementation of the I.E.E.E. standard aims to allow 10&#39;s or 100&#39;s of Dual Bus Distributed Queue MAN network stations to exist and intercommunicate to layers above and below it. 
     The operation of this scheduling is further dependent on two control bits within each packet. 
     The busy bit which indicates whether a slot on the network is used and the request bit R is set whenever a node or station has a packet waiting for access. Each station by counting the number of R bits it receives and non-busy packets, that pass it, can determine the number of packets queued (that is, in line) ahead of it. This counting establishes a single ordered queue across the network for access to each bus. 
     The control overhead of two bits per slot is effectively independent of network size and speed. 
     This prior art can be referenced in I.E.E.E. Communications Magazine Vol. 26, No. Apr, 4, 1988 pages 15-28 by Mollenauer and Newman, Budrikis, Hullett and Budrikis et al QPSX: a queue packet and synchronous circuit exchange. In Proc. I.CCC&#39;s 86, P. Kuhn, Editor, North Holland, Amsterdam, 1986. 
     This invention relates to an access protection and priority control mechanism (APPC mechanism) in distributed queuing. In its basic version the APPC mechanism ensures that the bandwidth allocated to each station contending for access to a common channel or transfer medium/bus architecture is kept in known limits independently of traffic load conditions. Moreover, under heavy loads, each station sees the common channel as a synchronous channel with fixed bandwidth. Under no circumstances is the available bandwidth wasted. 
     In one embodiment, the APPC mechanism has been devised in order to deal with non-homogeneous load conditions, which prevail in the multi-service environment of the Integrated Services Digital Networks (ISDNs) within the ISO model. 
     The description ,of the APPC mechanism is organised around the following parts, 
     Distributed queuing processes and their variations 
     Unfairness of access in distributed queuing 
     APPC mechanism--maximum and lower protection limits 
     APPC mechanism--buffer thresholds 
     APPC mechanism--other modifications 
     APPC mechanism--static and dynamic management procedures. 
    
    
     BRIEF DESCRIPTION OF THE DRAWING 
     The objects, advantages and features of the invention will be more clearly understood from the following detailed description, when read in conjunction with the accompanying drawing, in which: 
     FIG. 1 shows the general switch architecture of QPSX; 
     FIG. 2 shows the general architecture of distributed queuing process as proposed for access control in Dual Bus QPSX MAN; 
     FIG. 3 shows a depiction of the unfairness which occurs in the case of the non-exhaustive mechanism during heavy load conditions; 
     FIG. 4 shows a depiction of the operation of the APPC upper protection limit during heavy load conditions; 
     FIG. 5 shows a depiction of the operation of the bandwidth availability of the system of particular stations; 
     FIG. 6 shows operation of lower and upper input buffer threshold limits, 
     FIG. 7 shows operation of lower and upper protection limits and the countdown process, 
     FIG. 8 shows the issuing of a user data packet on the first transmission medium and checking of queue of waiting user data packets, 
     FIG. 9 shows the process of request bit generation and issuing of that bit on the second communication medium, 
     FIG. 10 shows the process of decrement of request counter upon the arrival of a free slot, 
     FIG. 11 shows cells on the first packet data communication medium and the configuration of information bits therein, 
     FIG. 12 shows stations and examples of data request bits, types of request bit type identification and a user&#39;s data packet, and 
     FIG. 13 shows a station and an embodiment of its configuration. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     Introduction 
     The operation of the proposed mechanism is based on the concept of access protection levels and input buffer thresholds. The access protection levels and buffer thresholds can be changed off-line or on-line to regulate an amount of bandwidth available to each station. The APPC mechanism can be implemented in the MAC layer or as a higher layer protocol by means of software or hardware. It can be applied in all stations or selectively. In that latter case it can be used only in several stations or applied to selected traffic types. The APPC mechanism can be used in a conjunction with different versions of the distributed queuing process. 
     The proportion of bandwidth guaranteed by APPC mechanism to each station does not depend on the channel bit rate or bus length. 
     Distributed Queuing Processes and Their Variations 
     A distributed queuing process has originally been proposed for access control in Dual Bus Distributed Queue MAN. Basically, it operates as follows, see FIG. 2. There are N stations which compete for access to the common channel. There are packets in the system that are generated by the user attached to the station which are to be transferred on the transmission bus, we will refer to them as `user packets`. The channel time is slotted and the data transmission rate is a parameter of the system. In the recent CCITT nomenclature the time slots are called cells. The transmission is unidirectional. We assume that Station #1 receives each slot as the first one, and the Station #N as the last one. We shall say that the Station B or #2 in this example is downstream from A or #1 in this example if A receives slots before B. There is a second bus in the systems which serves to transmit packets in the opposite direction. Each of the Buses in a Dual Bus architecture is operated independently. 
     The control sub-channel which comprises a selected bit in each of the slots is separated from each transmission bus. It carries signals which control the traffic flow in the opposite direction by using the other bus, that is, the control signals are passed upstream with respect to the data flow on the other bus. 
     The control sub-channel is one bit in each cell, the so called R bit. When a given station receives a slot with the R bit set to `1`=one, it means that one of the stations downstream has a packet to send. 
     Each station maintains two counters: 
     REQ (request) counter, and 
     CD (count down) counter 
     The REQ counter is increased by one each time the slot with R bit set to one is received from the downstream station via the signalling sub-channel. The REQ counter is decreased by one when: (a) the free cell is passed downstream, and (b) CD counter is equal to zero, and also (c) REQ is greater than zero. If CD is bigger than zero and the free slot passes the station and is passed downstream the CD counter is decreased by one. The CD counter is set equal to the value of REQ when a user packet arrives at the station. 
     Process 1 
     Assume that a packet not addressed to station S and generated by the user outside the bus arrives at the station S in the time slot K. Consider the following version of a prior art access algorithm which we will refer to as process 1. 
     1. If the Station S REQ=0 and the previously received packets from the outside user queue in S is empty the arriving packet attempts to seize the free slot on the transmission bus. We shall say that it starts hunting for the free slot on the transmission bus. At the same time, station S sets R=1 in the first cell, which is sent upstream on the signal bus and which has got the R bit set to zero. 
     2. If REQ&gt;0 and the queue in S is empty station S transfers the current value of REQ to CD, and sets REQ=0 then sends R bit=1 upstream, and initiates the count down. 
     3. If there is a packet in the queue the new packet joins the queue and generates the R bit=1. 
     The R bit is generated by the station in the time slot in which the packet arrival occurs from the outside. If the R bit cannot be forwarded upstream because R bits in cells going upstream are already set to 1, it joins the queue of R bits which are waiting for sending upstream in the passing cells of the signal bus. We shall call the foregoing prior art version of the algorithm-process 1. 
     Process 2 
     A modification of the process 1 could be to take into account, when a packet does not issue the R bit upon its arrival to the non-empty queue. It would only do so after the packet comes to the head of the queue. We shall refer to such a mechanism as process 2. Process 2 is (currently implemented in hardware and software) proposed as the IEEE 802.6. 
     In brief, according to the above descriptions the Station is operated according to the following steps; 
     packet arrives and R bit is switched on 
     count down is initiated 
     count down is accomplished 
     free cell is hunted for 
     packet is transmitted 
     queue is checked. 
     If the queue is not empty after the transmission of the previous packet then 1) the station starts hunting if REQ=0, and 2) if REQ=/=0 it initiates the process of counting down to zero. Additionally in process 2 it generates the next R bit. 
     We have thus far assumed that the requests in a given station form the queue. In other implementations of the above process the request signal, being generated when R in a passing cell is already set to 1, may overwrite R or may be neglected. 
     A still further implementation dependent feature is the requirement for a permission to transmit the user packet. In some implementations a given station can transmit a packet only after it was able to write a request bit. We assume, however, that in the case of process 1 this is not necessary. 
     We stress that in this description we are concentrating on a particular version of the I.E.E.E. distributed queuing algorithm only to illustrate the prior art and introduce the problems and limitations of that prior art generally. 
     The invention to be described comprises alone or in combination access, protection limits and input buffer thresholds associated with a plurality of counters at each station preferably the REQ and CD counters, said process being capable of use in conjunction with any version of a distributed queuing process and this to be compared with the following prior art. 
     In the prior art, at Station S, starting the count down, means that each time a free slot passes the station the content of the CD counter is decreased by one. Station S can then start hunting for a free cell on the transmission bus in which it could put the waiting user packet, after the CD value drops to zero. That is, if, say, at the beginning of the free time slot k+m, m≧0, the CD is zero, the slot k+m can be used by the packet in S. 
     Unfairness of Access in Distributed Queuing 
     (Blocking &amp; Choking) 
     There are many types of unfairness in the considered prior art systems. We shall first consider the unfairness which occurs when the process 1 is applied. 
     Blocking of Upstream Stations 
     (Stubborn and Transient Unfairness) 
     Process 1 works well as long as the network is not congested. Trouble occurs when there are very many stations which want to send packets simultaneously. Then the unfairness period starts and exists as long as the system is heavily loaded. It may result in complete blocking of upstream stations. The unfairness, which occurs under heavy loads will be called `stubborn unfairness`. 
     Under a slight load, it is possible for one of the stations to temporarily intercept all the available bandwidth of the medium. This second type of unfairness will be called transient unfairness, Transient unfairness is not disastrous for system operation for it lasts only for the period of time equal to the round-trip delay between stations situated at opposite ends of the bus. 
     Unfairness Under Light Loads (Transient Unfairness) 
     It must be remembered that the stations can be situated far apart one from another. Thus delays are caused in forwarding cells and control signals. To illustrate this consider this simple example. Assume that 
     1. The channel bit rate is 150 Mbit/s=c. 
     2. The distance between stations A and B is 10 km. 
     3. The signal propagation speed is 200,000 km/s 
     4. The slot size is 32 bytes. 
     Then, 30 slots are issued from the upstream station A before the control signal from the station B reaches A. The one way signal delay is 50 us. If station A is very active and seizes all the slots the station B will receive the first free cell after 100 us. We call this unfairness transient unfairness because only after the initial period of (100 us) or 60 time slots, does the station B receive free cells systematically again. 
     Unfairness Under Heavy Loads (stubborn unfairness) 
     To explain how the effect of the stubborn unfairness manifests itself we must make additional assumptions about the distributed queuing protocol. 
     Firstly, we must specify what happens when the next user packet arrives at the station before the previous user packet has been transmitted. Two operation modes are possible. 
     MODE 1. The next packet waits till the transmission of the previous packet has been completed. Assume that the transmission of the first packet has been completed in the time slot k. Then, the content of the REQ counter is transferred to the CD counter during the slot k. That is, at the beginning of the slot k+1 we have REQ=CD, and the count down process starts again. 
     This mechanism is called a `non-exhaustive mechanism`. 
     MODE 2. The next packet starts hunting for the next free cell just after the previous transmission has been accomplished. 
     This mechanism is called an `exhaustive mechanism`. The exhaustive mechanism leads in an obvious way to seizing of the bandwidth by the upstream stations. The unfairness, which occurs in the case of the non-exhaustive mechanism, is illustrated in FIG. 3. 
     Two stations are considered. Station A is situated upstream with respect to the Station B. We assume heavy load conditions. That is, packets arrive both to A and B in each time slot. It follows from the figure, that station A must give priority to station B. This is due to the fact that the R bits arrive at A in each time slot. Thus, the sum REQ+CD increases by one in each time slot. Each time the packet from A is transmitted the maximal value of REQ+CD is increased by one. Thus, the length of the time period between transmissions from A increases thus exhibiting a stubborn unfairness. 
     Choking of Downstream Stations 
     When process 2 is applied it may occur that the downstream stations are blocked. This happens when the station upstream is very active. Assume that the station being downstream then issues a request. It takes 60 time slots in our previous example before the station downstream receives a free slot and only then can it generate a second request. Thus, the downstream station will receive only 1/60 of the bandwidth. 
     It follows that the lower limit on the performance of stations placed at the end of the bus cannot be controlled. The proportion of bandwidth available to the last station decreases when the channel bit rate or bus length increases. This is a significant drawback of process 2 when implemented in MAN networks which are characterised by long distances and high bit rates. 
     APPC Mechanism--Upper and Lower Protection Limits 
     In order to counteract the unfairness which occurs in the distributed queuing process and have a mechanism which controls an amount of bandwidth allocated to each station our invention has the following characteristics, 
     Access protection limits are applied; and 
     a threshold is imposed on the number of user packets generating request bits. 
     The process which has the above attributes will be called APPC (Access protection and Priority Control). 
     In order to illustrate how APPC works we consider process 1. We again stress, however, that the proposed mechanisms can be also implemented in the case of process 2. The set up of protection limits and buffer thresholds will then be different depending additionally on the particular mode of writing request bits. 
     The upper protection limit in the nth station will be denoted P max  (n), and the lower one P min  (n). The protection limits are applied when the content of the REQ counter is transferred to the CD counter; 
     REQ→CD. Under the upper protection mechanism: 
     
         CD=min{REQ; P.sub.max } and REQ=0 
    
     or; a still further mode of the APPC mechanism is to set the value of REQ counter to REQ=REQ-P max  after its contents is transferred to CD. 
     This further mode can be used to further regulate bandwidth sharing between the stations. 
     Correspondingly, if the lower protection limit is applied then 
     
         CD=max{REQ; P.sub.min } 
    
     As a consequence the upper protection mechanism eliminates the stubborn unfairness if the protection levels are well chosen. 
     The lower protection mechanism relieves the transient unfairness but at the expense of bandwidth wastage. Both mechanisms can be used to control, an amount of bandwidth allocated to each station. 
     Upper Protection Limit 
     We can illustrate the operation of APPC upper protection limit by considering three stations: A, B and C, where B is downstream from A, and C is downstream from B. Assume that all stations are experiencing heavy load conditions. The time behaviour of the network is illustrated in FIG. 4, where he lower protection limits are set to zero, and the upper protection limits are: 
     
         P.sub.Amax =2, P.sub.Bmax =1, and P.sub.Cmax =0. 
    
     Clearly, each station gets one third of the bandwidth, and each channel is synchronous. In general, under heavy load, station S with access protection limit P Smax  =m gets at least 1/m+1 of the bandwidth, which was not used by the upper stations. 
     If there are N stations numbered from 1 to N, the station being the uppermost, then we secure for each station N at least 1/N of the bandwidth just by setting P nmax  =N-n. Note that each station then gets at least 1/N share of bandwidth independently of channel bit rate and bus length. 
     Obviously, the upper protection limits could be set in a number of different ways. Changing the upper protection limits we can secure a required bandwidth for each station, independently of the load on the network. An attractive concept is to set limits for clusters of stations, or alternatively, implement different levels of intracluster or intercluster limits. 
     Assume that there are several traffic classes in the network, and each class generates a different type of request signal, e.g., sets a different request bit in slots going upstream, then, if there are several REQ counters in each station, one for each class of requests. The separate access protection limits can be set for each traffic class in each station. 
     Lower Protection Limit 
     The lower protection limit prohibits a use by the station of bandwidth, which is bigger than the assumed limit. The station must always allow to pass at least P min  free slots before it can transmit a Packet. Thus, if P min  =m the station receives at most 1/(m+1) of bandwidth which was not used upstream. 
     The lower protection limit can be used if a given station expects packet arrivals downstream. Then the stations downstream receive free slots with a delay smaller than the round-trip delay. 
     The lower protection limits can be also applied to not allow the station to use more network resources than it is authorised to use. 
     APPC Mechanism--Buffer Thresholds 
     The lower and upper access protection limits do not completely eliminate all negative effects which may occur under very high and non-symmetrical loads. To deal with such situations additional means can be used. They comprise: 
     buffer thresholds 
     request rate limit 
     BUSY counter bounds 
     Buffer Thresholds 
     Perhaps the most simple to implement and most effective mechanism is the `buffer threshold limit`. Using this mechanism the number of packets waiting in a queue in each station is limited. Alternatively, the packet can always wait in a buffer, but it can generate a request only if the number of its place in the queue becomes smaller than the threshold Q max . 
     A particularly attractive mechanism is invoked when the buffer threshold mechanism is used in a conjunction with the access protection limits. 
     In order to illustrate how the buffer threshold mechanism works consider an example of two stations A and B. Assume that P Amax  =n+m and P Bmax  =n, and that station B is downstream from A. The stations are situated close to one another so that the propagation delay can be neglected. Assume further that only those two stations are active in the network, and that each one of them generates a traffic load which is bigger than the channel bit rate. 
     The analysis of the system operation indicates that if the buffer threshold mechanism is not applied, then after some time the station A will receive the 1/n+m+1 proportion of the bandwidth and the station B the rest of it. In particular, if A is close to the beginning of the bus and has a high protection number, then it will get only a small proportion of bandwidth as compared to B. 
     Assume now that the buffer threshold in station B has been applied and that the user packets arriving when Q≧Q max  are discarded or wait in the external queue. FIG. 5 shows what happens when this threshold is equal to 3, Q max  =3. Clearly, station A receives 1/4 of the bandwidth. We have assumed that the new packet can be forwarded to the buffer in the time slot in which another packet is taken from the buffer. It can be easily checked that the mechanism also works if in a given time slot only an IN or OUT operation is permitted. 
     The choice of the buffer threshold for a particular station provides an additional mechanism of access control and has the additional desirable feature that if in all stations Q max  =∞ we get Process 1, while setting Q max  =1 corresponds to operating the system according to Process 2. 
     The buffer threshold should be related to the position of the station on the bus and to the propagation delay. In the system without priorities the downstream stations, far away from the beginning of the bus in terms of signal propagation time, should have bigger threshold values than the upstream stations. We suggest that for the last station on the bus the buffer threshold should be at least equal to 1/4W, where W is a round-trip delay, measured in time slots, between the first and last station. 
     Treating the above threshold as the upper threshold the lower threshold can also be considered, when a station can generate a request only if the packet queue has a length bigger than some pre-set value. This could be the case of lower priority stations. 
     1. A station using APPC observes three external events 
     1. User&#39;s data packet arrival; 
     2. Arrival of the free slot on the first communication medium (transmission bus); 
     3. Request arrival on the second communication medium (signal bus) (Rbit=1) 
     Processes triggered by those events are shown in FIGS. 6 to 10, where the following notation has been used; 
     k=time slot k 
     CD=countdown counter 
     REQ=request counter 
     Q=no of packets waiting for transmission 
     S=request queue size 
     Q max  =upper input buffer threshold 
     Q min  =lower input buffer threshold 
     P max  =upper protection limit 
     P min  =lower protection limit 
     R=request bit 
     In this embodiment it is assumed that the request bits which cannot be written on the second communication medium (signal control bus) since R bits arriving from the downstream are already set to 1 and thus R bits form the queue. S denotes the value of that queue. 
     k=k+1 denotes that the operation is repeated in the next time slot. 
     APPC Mechanism--Other Modifications 
     We have mentioned that other mechanisms can be appended to the proposed process. 
     Request Rate Limit 
     The rate of request generation can be controlled by counting the number of requests issued by a given station. If the counter content exceeds the limiting value L 1  max the station must allow to pass upstream L 2  max slots with R bit set to zero. Then the station can again issue the request bits. The counting process starts from zero or some positive value. Using this mechanism we can effectively decrease the risk of flooding the network with requests generated by one station. The request rate limit mechanism can be applied when the request bits are not allowed to form a queue. That is, when overwriting of R=1 on R=1 is permitted or, alternatively, when R=1 bits generated during the time slot on the control bus, when R bits already set to 1, are dropped. 
     The effect of the request rate limit mechanism is very similar to the input buffer threshold mechanism in that it limits the number of requests going upstream. 
     Busy Counter Bounds 
     Each time the station puts the packet into the empty cell it sets the BUSY bit in this cell to one. The BUSY counter can be easily appended to each station counting how many packets were issued from that given station. Having the upper bound on BUSY counter, B 1  max, we can decrease an amount of traffic forward from that station to the bus which is less than B 1  max. If the number of issued packet is greater than B 1  max the station must allow B 2  max empty slots to pass down and only then can it restart its own transmission. 
     FIG. 11 shows an example of the contents of two cells that have been issued from the two types of stations 1 and 2. Station has a cell identified by its Least Significant Bit (LSB) denoted 11 and having digital value `01`. Station 2 has a cell identified by its LSB&#39;s also denoted 11 and having digital value `11`. Thus although these cells are communicated along the same first communications medium they will only be associated, read and issued by their respective stations. 
     The Most Significant Bit denoted 12 in each cell denotes whether the cell is free value `0` or occupied value `1`. Thus the bits denoted 14 are all `0` indicating further that the cell is free and t bits 13 are a variety of values indicating the contents of a user data stream. 
     FIG. 12 shows a user data packet 15 having various bits within the packet which is placed into, the station 1 as the user requires. The APPC mechanism will then control the issuing of that packet onto a free cell on the first communication medium 16 in concert with data information received by station 1 on the second communication medium 17. Cells, packets or indeed analogue signal data, however, shown in this figure as a cell, 18, with various bits denoted as data request bit 19 set `1` to indicate a downstream station is requesting a free slot, and bits 20 which separately identify the cell as being a particular type of request bit cell. Additional capacity in the cell may be used as previously discussed. 
     FIG. 13 shows one embodiment of a station capable of employing full or partial implementation of the APPC mechanism. A first communication medium 100 providing data communications downstream receives slots on the medium with receiver 101 (this device is well known in the art) and connected via 103 to the control means 105. 
     A variety of upper and lower limits variously denoted P max , P min , Q max , Q min , L 1max , L 2max , B 1max  and B 2max  are stored within Memory means 106 and more particularly in area 124. Connection means 107 provides a communication path for data exchange with the control means 105. Additionally a variety of counters are resident in memory means area 106 or alternatively could occupy separate housings and accumulated values equally available to the control, means 105. These counters are denoted Request Bit Counter 119, Buffer counter 120, Request Rate counter 121, Busy Bit Counter 122 and Count Down counter 123. A second communications medium 110 transmitting information upstream is used to communicate information relating to the requests for free cells from stations downstream. Receiver 111 connected via means 113 to the control means 105 receives all the data, while control means 105 discriminates which data is relevant to the station or not. 
     Transmitter 112 via connection means 114 continues the second communication path of information, by transmitting the received information and if required by the request bit means 106a via connection means 107 upon control of the control means 105 issues a request bit indicating the stations need to issue a users data packet onto the first communications medium 100. External source 115 feeds and receives data into and out of the station via communication means 116 and via a transmitter/receiver 117 via additional communication means 118 into the control means 105. 
     The external source may be a higher layer of the ISO model or single user personal computer or other devices capable of receiving and transmitting digital data. 
     The various connection means described may comprise hard wires, circuit board tracks or connections in integrated circuit chips. 
     The control means is preferably a microcomputer device programmed to perform the required control function, said program being resident in ROM 108 and connected via 109 to the control means 105. 
     Bidirectional Control of the Bus 
     The four mechanisms presented so far: (1) access protection limits; (2) input buffer thresholds; (3) request rate limits; and (4) busy counter bounds allow for the `bidirectional control` of the transmission bus. 
     There are two mechanisms: access protection limits and busy counter bounds which say how many slots going downstream a given station can seize and which exemplify the use of thresholds on counters and queues to control packets from a given station on a transmission bus. And there are also two mechanisms: input thresholds and request rate limits which say how many requests a given station can issue upstream and exemplify the use of thresholds on counters and queues to control the transmission of request bits from a given station on a signalling bus. 
     It will be apparent to the skilled practitioner that the protection and control mechanisms described hereinbefore are equally applicable to single bus environments which have a control path running upstream of the bus. As equally applicable is the utilization of this mechanism to internal communications environments of chips and any form of digital traffic control means, for example, trunked telephone/radio or telecommunications voice switching systems which may, of course, comprise analogue or digital voice circuits. 
     The use of various counters and limits at each station along a communication medium and as heretofore described is shown specifically as applicable to one half of a dual bus system, the other half of the dual bus having exactly the same configurations and limits so as not to unbalance the dual buses although variations of the invention may operate only one bus and its corresponding control channel/s or partial implementations thereof. 
     It will also be clear that the second communication medium may comprise dedicated analogue connection means which carry data in any convenient form to represent the request bit information, or alternatively the second communication medium may comprise a specific bit with a packet switched communication medium just like the first communications medium wherein a bit or bits is used to represent the request bit information intended to communicate the request to upstream station of the need of a downstream station to insert a user data packet onto and into a free cell on the first communication medium. 
     APPC Mechanism--Static and Dynamic Management Procedures 
     The APPC mechanism relating to this embodiment can be operated as a static preset procedure, operating in the MAC or one of the higher layers. In the static mode the APPC parameters are changed by the network manager from the keyboard. It seems, however, that system efficiency could possibly be further increased by adaptive adjustment, by the system itself, of limits, bounds, and thresholds to changing load conditions. 
     Note that the quality of system operation generally depends on the amount and quality of information about the state of the system that is available to the controlling person or device, and secondly, that the nature of communication traffic is such that it is not necessary to update the system control parameters on the same time scale within which packets are sent. 
     Therefore, in order to dynamically adjust the control parameters additional `control` stations could be added to the network. In large networks they will be needed anyway to perform management, maintenance and testing functions. One such station could serve a cluster of user stations. Alternatively, user stations can serve as control stations, running control protocols in higher layers of network architecture. Traffic management would consist of measuring channel utilisation (e.g., in pre-defined windows), collecting information from other stations about load, and re-calculating the flow control thresholds. 
     In networks supporting virtual connections the control parameters could also be changed each time one of the stations issues a higher layer request for a connection set up. 
     We stress that such dynamic management can be built on top of the static APPC mechanism, as a separate and independent function.