Bandwidth Allocation Control Protocol (BACP)


Bandwidth Allocation Control Protocol (BACP) is a protocol used in Asynchronous Transfer Mode (ATM) networks to control the allocation of bandwidth among different virtual channels. It is used to ensure that bandwidth is allocated fairly among competing traffic streams, and to prevent any one traffic stream from monopolizing the network.

BACP operates at the edge of the ATM network, in the ATM Adaptation Layer (AAL). When a virtual channel is established between two endpoints, BACP is used to negotiate the amount of bandwidth that will be allocated to that channel. BACP also monitors the usage of the channel, and adjusts the allocated bandwidth as necessary to ensure fair allocation among all channels.

BACP uses a combination of both reservation-based and explicit rate-based methods to allocate bandwidth. In reservation-based allocation, a virtual channel is allocated a fixed amount of bandwidth that it is guaranteed to have access to. In explicit rate-based allocation, a virtual channel is allocated a maximum amount of bandwidth, but it is not guaranteed to have access to that much bandwidth at all times. Instead, it must compete with other channels for the available bandwidth.

BACP also provides mechanisms for handling congestion and ensuring Quality of Service (QoS) for different types of traffic. When network congestion occurs, BACP may reduce the amount of bandwidth allocated to certain virtual channels, or may temporarily block new virtual channel requests, in order to ensure that existing channels continue to receive the guaranteed minimum level of service.

BACP Functions

BACP has several key functions that it performs in order to control the allocation of bandwidth in ATM networks −

  • Bandwidth negotiation − When a virtual channel is established between two endpoints, BACP is used to negotiate the amount of bandwidth that will be allocated to that channel. This ensures that each channel receives a fair allocation of bandwidth, and prevents any one channel from monopolizing the network.

  • Monitoring and adjustment − BACP monitors the usage of each virtual channel and adjusts the allocated bandwidth as necessary to ensure fair allocation among all channels. This dynamic adjustment of bandwidth helps to optimize network performance and prevents congestion.

  • Congestion control − BACP provides mechanisms for handling network congestion by reducing the amount of bandwidth allocated to certain virtual channels or temporarily blocking new virtual channel requests. This ensures that existing channels continue to receive the guaranteed minimum level of service even when the network is congested.

  • Quality of Service (QoS) support − BACP supports different levels of QoS for different types of traffic. It allows to provide different levels of service for different types of traffic, such as real-time video or audio, and ensures that these types of traffic receive the necessary bandwidth to maintain high-quality service.

  • Support of different allocation techniques − BACP can use both reservation-based and explicit rate-based methods to allocate bandwidth. Reservation based allocation assign a fixed amount of bandwidth that is guaranteed to the user, while explicit rate-based allocation assigns a maximum amount of bandwidth, but is not guaranteed to have access to that much bandwidth at all times.

In summary, BACP is a protocol that is responsible for allocating bandwidth efficiently and fairly, preventing network congestion and assuring Quality of Service. It utilizes different allocation techniques, monitors the use and adjusts accordingly, as well as controls network congestion in order to ensure optimal network performance.

BACP Commands

BACP commands are used to control and configure the Bandwidth Allocation Control Protocol (BACP) on a device that implements the protocol, such as a router or switch. These commands are used to establish and configure virtual channels, set bandwidth allocation parameters, and monitor and troubleshoot BACP operation.

Here are some examples of common BACP commands −

  • create vc − This command is used to create a new virtual channel between two endpoints. It is typically used to establish a new connection between two devices.

  • modify vc − This command is used to modify an existing virtual channel. It can be used to adjust the bandwidth allocation for a channel, or to change other configuration parameters for a channel.

  • show vc − This command is used to display information about virtual channels. It can be used to view the status and configuration of existing virtual channels, or to troubleshoot problems with virtual channels.

  • delete vc − This command is used to delete an existing virtual channel. This can be used to terminate a connection between two devices, or to remove a virtual channel that is no longer needed.

  • show bacp − This command displays information about the current BACP configuration, such as the number of virtual channels that have been established and the amount of bandwidth that is currently allocated to each channel.

  • debug bacp − This command can be used to enable debugging messages related to BACP operations. It can be useful to troubleshoot issues with BACP.

These are just a few examples of BACP commands that may be available on a device that implements the protocol. The exact commands and command syntax will depend on the specific device and its software version, it's also important to note that BACP is not widely used and older technology and the commands may be different or not exist in newer equipment.

BACP Header Format

The BACP header format is used to structure the information that is exchanged between two devices using the Bandwidth Allocation Control Protocol (BACP). The header is typically included in the payload of an ATM cell and contains information that is used by BACP to control the allocation of bandwidth among different virtual channels.

Here is an example of the format of a BACP header −

Field

Size (bits)

Description

Version Number

4

Identifies the version of the BACP protocol that is being used.

Reserved

4

Unused bits that are reserved for future use.

Message Type

8

Indicates the type of BACP message that is being sent. This can include messages such as "bandwidth request," "bandwidth allocation," "bandwidth release," and "bandwidth query."

Virtual Channel Identifier (VCI)

16

Identifies the virtual channel that the BACP message is related to. Each virtual channel is assigned a unique VCI value.

Virtual Path Identifier (VPI)

8

Identifies the virtual path that the BACP message is related to. A virtual path is a logical grouping of virtual channels that share a common path through the network. The VPI value is used in conjunction with the VCI value to identify a specific virtual channel.

Requested Bandwidth

32

The amount of bandwidth that is being requested or allocated in the BACP message. This field is only present in certain types of BACP messages, such as "bandwidth request" and "bandwidth allocation."

As you can see the header is composed by fields such as version number, message type, Virtual Channel Identifier, Virtual Path Identifier and Requested bandwidth. Each field contains information that is used by BACP to control the allocation of bandwidth among different virtual channels.

It's also important to mention that as I mentioned before, BACP is not a widely used protocol today and the header format and structure might not be the same in all devices that implement it, but the general idea of it is similar.

Updated on: 06-Feb-2023

287 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements