This is also the layer where packets may be selected to be sent over a [[virtual private network]] or other [[tunneling protocol|networking tunnel]]. In this scenario, the Link Layer data may be considered application data which traverses another instantiation of the IP stack for transmission or reception over another IP connection. Such a connection, or virtual link, may be established with a transport protocol or even an application scope protocol that serves as a [[tunneling protocol|tunnel]] in the Link Layer of the protocol stack. Thus, the TCP/IP model does not dictate a strict hierarchical encapsulation sequence.
===Internet Layer===
The [[Internet Layer]] solves the problem of sending packets across one or more networks. [[Internetworking]] requires sending data from the source [[computer network|network]] to the destination network. This process is called [[routing]].<ref>[http://www.comsci.us/datacom/ippacket.html IP Packet Structure]</ref>
In the Internet Protocol Suite, the Internet Protocol performs two basic functions:
* ''Host addressing and identification'': This is accomplished with a hierarchical addressing system (see [[IP address]]).
* ''Packet routing'': This is the basic task of getting packets of data (datagrams) from source to destination by sending them to the next network node (router) closer to the final destination.
IP can carry data for a number of different [[upper layer protocol]]s. These protocols are each identified by a unique [[List of IP protocol numbers|protocol number]]: for example, [[Internet Control Message Protocol]] (ICMP) and [[Internet Group Management Protocol]] (IGMP) are protocols 1 and 2, respectively.
Some of the protocols carried by IP, such as ICMP (used to transmit diagnostic information about IP transmission) and IGMP (used to manage [[IP Multicast]] data) are layered on top of IP but perform internetworking functions. This illustrates the differences in the architecture of the TCP/IP stack of the Internet and the OSI model.