In a connection-oriented packet switched data link layer or network layer protocol, all data is sent over the same path during a communication session. The protocol identifies traffic flows only by a channel/data stream number, often denoted virtual circuit identifier (VCI), rather than by complete routing information for each packet (source and destination addresses) used in connectionless datagram switching such as conventional IP routers. In connection-oriented communication, routing information may be provided to the network nodes during the connection establishment phase, where the VCI is defined in tables in each node. Thus, the actual packet switching and data transfer can be taken care of by fast hardware, as opposed to slow software based routing. Typically, this connection identifier is a small integer (10 bits for Frame Relay, 24 bits for ATM, for example). This makes network switches substantially faster (as routing tables are just simple look-up tables, and are trivial to implement in hardware). The impact is so great, in fact, that even characteristically connectionless protocols, such as IP traffic, are being "tagged" with connection-oriented header prefixes (e.g., as with MPLS, or IPv6's built-in Flow ID field ).