TCP/IP is a suite of protocols. The acronym TCP/IP means "Transmission Control Protocol/Internet Protocol" and is pronounced "T-C-P-I-P". It comes from the names of the two major protocols in the suite of protocols, i.e. the TCP and IP protocols).
In some ways, TCP/IP represents all communication rules for the internet and is based on the IP addressing notion, i.e. the idea of providing an IP address for each machine on the network so as to be able to route data packets. Given that the TCP/IP protocol suite was originally created with a military purpose, it is designed to respond to a certain number of criteria, including:
Knowledge of the collection of TCP/IP protocols is not essential for a simple user, just as a viewer does not need to know how his television or audiovisual networks work. However, for people who want to administrate or support a TCP/IP network, knowledge of it is vital.
Overall TCP/IP brings together two notions:
So as to be able to apply the TCP/IP model to any machine, i.e. independently of the operating system, the TCP/IP system of protocols has been broken down into several modules each carrying out a specific task. Furthermore, these modules carry out these tasks one after the other in a specific order, so there is stratified system, this is the reason we talk about a layer model.
The term layer is used to reflect the fact that the data which travels over the network crosses several protocol levels. So, data (information packets) which circulates over the network is processed successively by each layer, which adds an item of information (called a header) then sends it to the next layer.
The TCP/IP model is very close to the OSI model (model comprising of 7 layers) which was developed by the international standards organization (ISO) in order to standardize communications between computers.
OSI means Open Systems Interconnection. This model was established by ISO in order to implement a communications standard between computers on a network, that is the rules which manage communications between computers. In fact, when networks began, each manufacturer had its own system (we talk of a proprietary system) so many incompatible networks coexisted. This is the why it was necessary to establish a standard.
The role of the OSI model is to standardize communication between machines so that different manufacturers can develop compatible (software or hardware) products (as long as they strictly observe the OSI model).
The aim of a system in layers is to separate the problem into different parts (the layers) depending on their level of abstraction.
The OSI model is a model which comprises of 7 layers, while the TCP/IP model only has 4. In reality the TCP/IP model was developed around about the same time as the OSI model which is why it is inspired by it but does not completely conform to the specifications of the OSI model. The layers of the OSI model are as follows:
|Level||Old model||New model|
The TCP/IP model, inspired by the OSI model, also uses the modular approach (use of modules or layers) but only contains four:
|Network Access layer|
As can be seen, the layers of the TCP/IP model have much more diverse tasks that those of the OSI model, considering that certain layers from the TCP/IP model correspond to several levels of the OSI model.
The roles of the different layers are as follows:
During a transmission, data crosses each one of the layers at the level of the originator machine. At each layer, a piece of information is added to the data packet, this is a header, a collection of information which guarantees transmission. At the level of the recipient machine, when passing through each layer, the header is read, then deleted. So, upon its receipt, the message is in its original state...
At each level, the data packet changes aspect, because a header is added to it, so the designations change according to the layers:
The network access layer is the first layer of the TCP/IP stack, it offers the ability to access whichever physical network, i.e. the resources to be implemented so as to transmit data via a network.
So, the network access layer contains all specifications relating to the transmission of data over a physical network, when it is a local area network (Token ring, Ethernet, FDDI), connected by telephone line or any other type of link to a network. It deals with the following concepts:
Fortunately all these specifications are transparent in the eyes of the user, because all these tasks are in fact carried out by the operating system, while the hardware drivers allow connection to the network (e.g. network card driver).
The Internet layer is the "most important" layer (they are all important in their way) because it is this which defines the datagrams and manages the IP addressing notions.
It enables the routing of datagrams (data packets) to remote machines along with the management of their division and assembly upon receipt.
The Internet layer contains 5 protocols:
The protocols for the preceding layers make it possible to send information from one machine to another. The transport layer enables applications running on remote machines to communicate. The problem is identifying these applications.
In fact, depending on the machine and its operating system, the application may be a program, task, process...
Furthermore, the name of the application may vary from system to system, that is why a numbering system has been put in place so as to be able to associate an application type with a data type, these identifiers are called ports.
The transport layer contains two protocols enabling two applications to exchange data independently of the type of network taken (i.e. independently of the lower layers), these are the following two protocols:
The application layer is located at the top of the TCP/IP protocol layers. This one contains the network applications which make it possible to communicate using the lower layers.
The software in this layer therefore communicates using one of the two protocols of the layer below (the transport layer), i.e. TCP or UDP.
There are different types of applications for this layer, but the majority are network services, or applications supplied to the user to provide the interface with the operating system. They can be classed according to the services that they provide: