Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
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 ensures that bandwidth is allocated fairly among competing traffic streams and prevents any single 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 negotiates the amount of bandwidth allocated to that channel. It also monitors channel usage and adjusts the allocated bandwidth as necessary to ensure fair allocation among all channels.
Bandwidth Allocation Methods
BACP uses a combination of both reservation-based and explicit rate-based methods to allocate bandwidth:
-
Reservation-based allocation A virtual channel is allocated a fixed amount of bandwidth that it is guaranteed to access.
-
Explicit rate-based allocation A virtual channel is allocated a maximum bandwidth amount but must compete with other channels for available bandwidth.
BACP also provides mechanisms for handling congestion and ensuring Quality of Service (QoS) for different types of traffic. During network congestion, BACP may reduce bandwidth allocated to certain virtual channels or temporarily block new virtual channel requests to ensure existing channels maintain their guaranteed minimum service level.
BACP Functions
-
Bandwidth negotiation Negotiates bandwidth allocation when virtual channels are established, ensuring fair allocation and preventing monopolization.
-
Monitoring and adjustment Continuously monitors virtual channel usage and dynamically adjusts allocated bandwidth to optimize network performance.
-
Congestion control Handles network congestion by reducing bandwidth allocation or blocking new requests to maintain service levels for existing channels.
-
Quality of Service (QoS) support Provides different service levels for various traffic types, ensuring real-time applications receive necessary bandwidth.
-
Multiple allocation techniques Supports both reservation-based and explicit rate-based bandwidth allocation methods.
BACP Header Format
The BACP header is included in ATM cell payloads and contains information for controlling bandwidth allocation among virtual channels:
| Field | Size (bits) | Description |
|---|---|---|
| Version Number | 4 | Identifies the BACP protocol version being used |
| Reserved | 4 | Unused bits reserved for future use |
| Message Type | 8 | Indicates the BACP message type (bandwidth request, allocation, release, query) |
| Virtual Channel Identifier (VCI) | 16 | Uniquely identifies the virtual channel for the BACP message |
| Virtual Path Identifier (VPI) | 8 | Identifies the virtual path containing the virtual channel |
| Requested Bandwidth | 32 | Amount of bandwidth requested or allocated (present in specific message types) |
Common BACP Commands
BACP commands are used to control and configure the protocol on network devices:
create vc <parameters> # Create new virtual channel modify vc <vc-id> # Modify existing virtual channel show vc # Display virtual channel information delete vc <vc-id> # Delete virtual channel show bacp # Display BACP configuration debug bacp # Enable BACP debugging
Conclusion
BACP is an ATM protocol that ensures fair bandwidth allocation among virtual channels through dynamic monitoring and adjustment. While not widely used in modern networks, it provides important congestion control and QoS mechanisms for ATM-based systems.
