In a packet network, each data packet that is transported through the network to a destination node is assigned one of 2**N priority levels based on the type of information contained in the data packet. A data packet containing system control information is assigned the highest priority level. A data packet containing, for example, user information, is assigned a lower priority level. In addition, each priority level is associated with a respective "watermark" threshold. When a data packet arrives at a network node, the node compares the packet's associated watermark threshold with the number of data words currently stored in a common memory. The node rejects the packet if the watermark threshold is found to be less than that number to reserve space in the memory for data packets of higher priority. Otherwise, the data packet is stored in the common memory.
A process for fairly allocating resources in a multiport packet switch is disclosed. Each port is connected to a station and comprises a transmit FIFO buffer and a receive FIFO buffer. The ports are connected by a broadcast transmission medium. A transmit buffer of a specific port gains access to the transmission medium when the port possesses a token which is passed from port to port in a round-robin fashion. When a port recognizes that a transmitted packet is addressed to it, the port uses a local processor to determine whether or not to accept the packet. The determination is based on (1) information in the packet header, e.g., priority and address of the transmitting port, (2) the status of the receive buffer (full or not), and (3) other locally recorded information regarding past history of the acceptance or rejection of packets from particular ports and of particular priority classes needed to achieve fairness among packets of the same class and priority among different classes. If the receiving port makes a determination to reject a packet, the receiving port issues a busy signal which is transmitted over the broadcast medium. When the transmitting port receives the busy signal, it aborts transmission of the packet and releases the token. If the receiving port decides to accept the packet, the packet is written into the receive buffer of the receiving port.
Packet communication is effected by variably setting a control priority on the basis of a call priority value set as a fixed value at the time of call setting as well as a packet priority value variably designated by a transmission packet during communication. While a packet priority is being designated in correspondence with the degree of importance of the packet, the relevant packet can be communicated with a truly desirable priority corresponding to that degree of importance, thereby contributing to the effective utilization of a memory resource in an exchange and a trunk transmission zone.
Congestion control is implemented at the resources that actually suffer from congestion and, moreover the congestion control is performed within the network as well as at its access points. In a particular embodiment, congestion control is continuously performed at each resource. Use of each resource is controlled according to a head-of-the-line weighted round-robin service discipline thereby assuring fairness and full use of bandwidth for all active channels. Also, in order to control conditions of congestion, the queue of data elements waiting for service at each resource is regulated by a global congestion indicator for the entire queue. The data elements of each channel that are waiting for service are further regulated in response to specific local congestion indicators that are individualized for each channel. The global and local congestion indicators are used to guarantee predetermined levels of service for each channel. The values employed for the head-of-the-line weighted round-robin service discipline are developed as a function of at least the contracted-for bandwidth for each channel. The developed values are replicated for each resource subject to congestion control.
A packet communication system which communicates various communication information such as voice, data or images in the form of a packet and which provides a transmission quality which satisfies both of high instantaneousness and low discard properties and a method of controlling the system. A counter counts the respective numbers of stays of packets in priority-classified buffers. The percentages of output of packets from the respective buffers and both of the percentages of output of packets from and the percentages of input of packets to the respective buffers are controlled in accordance with the counted numbers of stays of packets in the respective buffers and information on the priorities of the packets.
A system for allocating shared memory resources among a plurality of queues and discarding incoming data as necessary. The shared memory resources are monitored to determine a number of available memory buffers in the shared memory. A threshold value is generated for each queue indicating a maximum amount of data to be stored in the associated queue. Threshold values are updated in response to changes in the number of available memory buffers.