What is TCP/IP?
TCP/IP is a set of network protocols (Protocol Suite) that enable communication between computers. Network protocols are rules or standards that govern network communications. If two devices in a network need to communicate together, they need to use common set of network protocols. This can be compared with how humans speak. A French person cannot communicate with a Vietnamese person (without help from a translator) since they speak different languages.
You can select from different network protocols to use in your network, but TCP/IP is the industry standard. Almost all Operating Systems now support TCP/IP. Internet is working on TCP/IP. TCP/IP is known as "the language of the Internet". If you want your computer and computer like devices (laptops, tablets, mobiles etc.) to work on the Internet, you have to use TCP/IP protocol suite.
Features of TCP/IP
Computing industry is using TCP/IP protocol suite for last five decades. TCP/IP protocol suite is a tested, proved and robust protocol suite.
1) Multi-Vendor Support. TCP/IP is implemented by many hardware and software vendors. It is an industry standard and not limited to any specific vendor.
2) Interoperability. Today we can work in a heterogeneous network (consisting of devices, Operating Systems, software from different vendors) because of TCP/IP. A network user who is using a Windows Operating System based computer can download files from a Linux machine, because both Operating Systems support TCP/IP. TCP/IP eliminates the cross-platform/multi-vendor boundaries.
3) Logical Addressing. Every network adapter has a globally unique and permanent physical address, which is known as MAC address (physical address or hardware address). The physical address is burnt into the card while manufacturing. Low-lying hardware-conscious protocols on a LAN deliver data packets using the adapter's physical address. The network adapter of each computer listens to every transmission on the local network to determine whether a message is addressed to its own physical address.
For a small LAN, this will work well. But when your computer is connected to a big network like internet, it may need to listen to millions of transmissions per second. This may cause your network connection to stop functioning.
To avoid this, network administrators often segment (divide) big networks into smaller networks using devices such as routers to reduce network traffic, so that the unwanted data traffic from one network may not create problem in another network. A network can be again subdivided into smaller subnets so that a message can travel efficiently from its source to the destination. TCP/IP has a robust subnetting capability achieved using logical addressing. A logical address is an address configured through the network software. The logical addressing system used in TCP/IP protocol suite is known as IP address.
4) Routability. A router is a network infrastructure device which can read logical addressing information and direct data across the network to its destination. TCP/IP is a routable protocol, which means the TCP/IP data packets can be moved from one network segment to another.
5) Name Resolution. IP addresses are designed for the computers and it is difficult for humans to remember many IP addresses. TCP/IP allows us to use human-friendly names, which are very easy to remember (Ex. www.omnisecu.com). Name Resolutions servers (DNS Servers) are used to resolve a human readable name (also known as Fully Qualified Domain Names (FQDN)) to an IP address and vice versa.
6) Error Control and Flow Control. The TCP/IP protocol has features that ensure the reliable delivery of data from source computer to the destination computer. TCP (Transmission Control Protocol) defines many of these error-checking, flow-control, and acknowledgement functions.
7) Multiplexing/De-multiplexing. Multiplexing means accepting data from different applications and directing that data to different applications listening on different receiving computers. On the receiving side the data need to be directed to the correct application, for that data was meant for. This is called De-multiplexing. We can run many network applications on the same computer, by using logical channels called ports. TCP/IP provides means for delivering packets to the correct application based on port numbers. In TCP/IP, ports are identified by using TCP or UDP port numbers.
The predecessor of today’s Internet was ARPAnet, created by the Advanced Research Projects Agency (ARPA) and launched in 1969 during "Cold War". The extreme distrust that existed between USA and USSR (Soviet Union) was almost on the verge of a nuclear war during that time. "Cold War" was the term used to describe the relationship between USA and USSR during period 1945 to 1990. ARPAnet was created in response to the potential threat of nuclear attack from the Soviet Union. One of ARPA’s primary goals was to design a fault-tolerant network that would enable U.S. military leaders to stay in contact in case of nuclear war.
The protocol used on the ARPAnet was called Network Control Protocol (NCP). As the ARPAnet grew, however, a new protocol was needed because NCP was not able to fulfil all the needs of a larger network.
In 1974 Vint Cerf and Bob Kahn, published a paper “A Protocol for Packet Network Interconnection.” This paper describes the Transmission Control Protocol (TCP), which eventually replaced NCP.
By 1978, testing and further development of this language led to a new suite of protocols called Transmission Control Protocol/Internet Protocol (TCP/IP). In 1982, it was decided that TCP/IP would replace NCP as the standard language of the ARPAnet. RFC 801 describes how and why the transition from NCP to TCP was to take place. On January 1, 1983, ARPAnet switched over to TCP/IP, and the network continued to grow very fast.
ARPAnet ceased to exist in 1990. The Internet has since grown from ARPAnet’s roots, and TCP/IP has evolved to meet the changing requirements of the Internet.
Requests for Comments (RFC)
Request for Comments (RFC) is a paper describing a protocol or technology. RFC's are used as a platform to encourage and facilitate correspondence among the engineers who are involved in developing a new technology or a protocol. RFCs help in providing feedback and collaboration among engineers. An RFC is a paper that has been written by an engineer, a team of engineers, or just someone who has an innovative idea, to define a new technology or enhance an existing technology. After an RFC is written and posted, it can be evaluated, and used by other engineers and developers. If another engineer or developer can improve on the theory or standard, the RFC provides an open forum to do so.
An RFC can be submitted for review to the IETF (Internet Engineering Task Force). Engineers from the IETF review the papers that are submitted and assign a number to each. From that point on, the RFC number becomes the effective "name" of the paper. Currently there are more than 8,700 RFCs. RFC's can be searched in RFC search Engine, http://www.rfc-editor.org/rfcsearch.html, by using the RFC number or by the technology name.