The entire ATM network is based on virtual connections set up by the switches upon initialization of a call. These virtual connections are similar to X.25 virtual circuit and are identified by Virtual Channel and Virtual Path Identifiers (VCI and VPI). The VCI and VPI's are used to route information from one switch to another. VCI and VPI are not addresses. They are explicitly assigned at each segment within a network.
The VCI label is used to identify a connection between two ATM switches. The VCI label in an ATM cell may change at intermediate nodes within a route. This is due to the fact that the VCI labels are owned by network nodes. The user has no way of choosing a particular VCI label. The label is instead assigned to the user from the ATM node. The VCI at a node are random. The VCI label is only 16 bits and is only designed to identify connection between two points.
Virtual channels are often grouped together to form a virtual path. The grouping of channels makes it easier for network management. Usually many virtual channels share a physical link at the same time allowing asynchronous interweaving of cells from multiple connections. All of these channels can be grouped into a single VPI. VPI group connections share a common path through the network and thus network management actions only have to be done to a single virtual path as opposed to all of the individual virtual channels. For example, if the actual physical connection had to be rerouted due to a problem it could be easily done by changing the virtual path. Thus the VPI simplify network management, without loosing flexibility.
In the ATM Layer, to be discussed later, VCI 0-5 are reserved for specific management functions.
The following is an example of how the VCI labels are assigned. A more complete example can be found in A Brief Tutorial on ATM by Zahir Ebrahim . Suppose we have two computes, one in Boston and one in Los Angeles. Each of these computers has a UNI with ATM cell interfaces. If we wish to make an ATM connection between the two computers, the following procedure has to be followed. The computer in Boston makes a connection request to the UNI in Boston. This request contains information about the transmission, such as destination, traffic type, bandwidth, cell loss, and other parameters. The UNI then forwards this request to the network. The network then determines the route that will best be able to handle the transmission requirements and sends a connection request to all of the nodes in the path between Boston and Los Angeles.
For simplicity, we will assume the route selected was Boston-New York-Dallas-Los Angeles. Each node will pick an unused VCI label and reserve it for the connection. Again the choice is based on the VCI available. Say Boston chooses VCI1, New York chooses VCI2, Dallas chooses VCI3, and Los Angeles chooses VCI4. Boston then forwards VCI1 to New York. New York, in turn, associates VCI1 with VCI2 in its connection table and forwards VCI2 to Dallas. Dallas associates VCI2 with VCI3 and forwards VCI3 to Los Angeles. Finally Los Angeles associated VCI3 with VCI4. Los Angeles then makes a request to the UNI in Los Angeles to see if it will accept the connection request. The request is accepted, and the node in Los Angeles forwards VCI4 to the UNI to make the connection. Los Angeles then acks Dallas, and forwards VCI4. Dallas again associates VCI4 with VCI3 to identify the path in the opposite direction. These acks continue until the reverse path is also connected. Finally Boston sends the original UNI VCI1 and the UNI forwards it to the computer to complete the connection.
Each computer associates the connection with a different VCI labels. The computer in Boston associates the connection with VCI1 while the computer in Los Angeles associates the connection with VCI4. The translation of VCI's is done by each node. Therefore it is not necessary for each computer to know the VCI associated with the other computer. The connection path appears as follows.
After the transfer is complete, the connection is torn down and the VCI labels are put back into the list of available VCI labels for other connections. If someone else in Boston also wants to transmit data to Los Angeles they will be assigned different VCI labels even though their route will most likely use the same physical channel. Also, if there are many users using the route from Boston to Los Angeles, they would most likely be assigned a similar VPI label in order to simplify network management.
For example, suppose we have four virtual connections from Boston to Los Angeles through the route described above. Each virtual channel as a VCI associated with it. They also, however, have been assigned a common VPI label since they follow the same route. Suppose there is a hurricane in Dallas and all communications are cut off. The network manager in New York could just reassign the VPI from Dallas to St Louis instead of changing each of the four VCI. This would save much time especially in a large network.