a virtual circuit
A virtual circuit is the other way a network layer could work: before any data flows, you set up a fixed path through the network, like calling a travel agent who books your entire connecting itinerary in advance so every leg is reserved. Once the path is established, every packet of that conversation follows the exact same route, and each router along the way remembers the connection.
Here is how it works. A setup phase runs first: a connection-request message threads through the network, and at each router an entry is created that maps a small connection identifier (a VC number) on the incoming link to the next link and a new VC number. Data packets then carry just that small VC number instead of a full destination address; each router does a tiny table lookup, swaps the number, and forwards. Because the routers hold per-connection state, they can guarantee ordered delivery and reserve bandwidth along the chosen path. Classic examples are the old telephone network, X.25, ATM, and Frame Relay; MPLS labels are a modern relative.
The Internet deliberately did NOT choose this model for its network layer; it chose datagrams. The trade-off is the heart of the matter: virtual circuits give predictable, in-order delivery and easy quality-of-service guarantees, but the routers carry state, setup adds delay, and a single failed router along the path can break every circuit through it. Datagrams give up those guarantees in exchange for stateless, resilient, simple routers. (Note: TCP gives you a connection-like, ordered byte stream, but it builds that at the end hosts on top of a pure datagram network — the routers in the middle stay stateless.)
On an ATM network, setup creates the chain: router A maps incoming VC 12 to outgoing VC 47, router B maps incoming VC 47 to outgoing VC 5, and so on. Each data cell carries only the tiny VC number; routers swap and forward without ever reading a full address.
A pre-arranged path with per-hop state — the road not taken by the Internet.
Don't confuse a virtual circuit with a TCP connection. A virtual circuit lives in the network layer and requires the routers to keep state; a TCP connection lives at the end hosts over a stateless datagram network.