In a Virtual Circuit Network how does a packet gets a VCI ? I read in Data Communication and Networking book by B.A.Forouzan that a packet with a VCI comes at a switch but there is no mention on how or who gives this VCI to the packet. I have also read that VCI gets changed on passing through the switch ? How is it done ? I am confused . Please help .
The Virtual Circuit Identifier (VCI) is used for reliably transferring packets by L2/L3 virtual circuits and allows higher level protocols to avoid dealing with the division of data into segments, packets, or frames.
The VCI is added by the intermediate routers/switches running protocols such as X.25, Frame Relay, Asynchronous Transfer Mode (ATM), GPRS, Multiprotocol Label Switching etc. Less overhead is required, since the packets are not routed individually and complete addressing information is not provided in the header of each data packet. Only a small virtual channel identifier (VCI) is required in each packet. Routing information is only transferred to the network nodes during the connection establishment phase.
How it works differs protocol to protocol. Read this link to better understand how VCI changes at every hop and what if the network routers doesn't support any such protocol.
At transport layer TCP and SCTP are responsible for providing virtual Circuits.