Efficient data communication requires the ability for computers with different hardware and using different operating systems to communicate directly with each other independent of their physical network connections. This has led to the development of various network technologies to link computer systems.
Integration of these disparate networks requires an additional layer of technology known as internetworking and the development of protocols to permit this internetworking to take place.
The Internet is a global system of interconnecting networks using a common internetworking protocol known as the Internet Protocol. IP has been designed to perform on top of almost any link layer protocol, and this is one reason for the rapid global acceptance and spread of the Internet.
IP provides a best effort, connectionless, datagram delivery service at the network layer, using variable length datagrams with 20 byte headers. IP usually requires a link layer to handle hop by hop connections, although it is possible to use IP without this layer.
Two principle transport layer protocols use IP. UDP , like its underlying network layer, is a best effort, connectionless, datagram delivery service, while TCP  develops a reliable, connection-oriented, data stream protocol that uses IP datagrams.