Layered Network Model

=Layered Network Model=

This network model describes a system of network functionality that has many advantages over the models. For instance, socket programs can be written exactly the same without caring how the data is physically transmitted, as programs on lower level deals with this.

Protocol Layering
The protocol layer can either be implemented in software, in hardware or in both combined. Some different models are shown below, where a brief description of the different layers follows. The service that a layer offers to a layer above reflects the so called service model.

When taken together, the protocols of the various layers are called the protocol stack.

Application Layer
The application layer is where network applications and their application-layer protocols reside. In example; in TCP/IP, the Application Layer includes protocols such as HTTP, SMTP and FTP. Such a protocol is distributed over multiple end systems; with one application in one end system using the protocol to exchange packets of information with the application in another end system.

Addressing between processes is done by specifying the name or address of the host and an identifier that specifies the receiving process in the destination host. In the Internet, the host is specified by the IP address and the destination is defined by a '''port number. '''

Transport Layer
The transport layer is the layer which provides end-to-end communication service for the applications, and provides convenient services such as connection-oriented data stream support, reliability, Flow Control and multiplexing. The most common transport protocols are probably TCP and UDP, which is used for connection-oriented transmission.

Services provided
Reliable Data Transfer

This service guarantees that the data sent by one end of the application is delivered correctly and completely to the other end of the application. One important variant of this service is the process-to-process reliable data transfer. By using this service; the sending process can just deliver the packet at the socket and know for certain that it will arrive at the receiving process without any errors.

Throughput

Throughput is basically the rate at which the sending process can deliver bits to the receiving process. As throughput can fluctuate with time (due to number of sessions, etc), this leads to a handy-service which the transport layer could provide; guaranteeing the application at least r bits/sec throughput at any time given. Application with this need of throughput-guarantee are said to be bandwidth-sensitive applications, and many multimedia applications fulfills this title. On the other end of the scale we find elastic applications with can make use of as much – or as little throughput as possible.

Timing

A transport-layer protocol can also provide timing guarantee. Basically this service guarantees within a time-interval a packet should arrive at the receiver’s socket. Such a guarantee might be extremely sexy for real-time applications.

Security

The last service that the transport-layer can provide is security. This can in example be done by encrypting all data transmitted by the sending process (decrypting it before arrival in the receiving host). A transport protocol can also provide other security services in addition to confidentiality, including data integrity and end-point authentication.

Network Layer
The network layer is responsible for routing packets delivery, including routing through intermediate routers. It does also provide the functional and procedural means of transferring variable length data sequences from a source to a destination host via one or more networks while maintaining the quality of service functions. The network layer includes the infamous Internet Protocol (IP), which defines the fields in the datagram as well as how the end systems and routers act on these fields. Another feature provided by the network layer is routing protocols. These protocols makes it possible to determine routes that datagram has taken between source and destination. The network layer is also known as the IP Layer.

Link Layer
The link layer is the protocol layer which transfers data between adjacent network nodes in a wide area network or between nodes on the same local area network segment. It also provides the functional and procedural means to transfer data between network entities and might provide the means to detect – and possibly correct errors that may occur in the physical layer. Examples of link layer protocols are Ethernet, WiFi and the Point-to-Point Protocol (PPP). Even though there is only one link layer – a datagram traveling between different links might be exposed to different link-layer protocols along its route.

Physical Layer
The physical layer’s job is basically at bit-level. The link layer is responsible of transferring packets between links, while the physical layer has the responsibility of actually moving the bits of these packets over the link through a raw bit stream. There are several different physical layers that needs to be supported; in example for Ethernet, there need to be one layer for twisted-pair copper wire, one for coaxial cable, etc. Each of these layers behaves differently.

Sending a packet from one end system to another
Application –> Transport –> Network –> Link

The application utilizes a protocol such as http to send a packet from one end system to another addressed through a socket-connection. This packet of information at the application layer is referred to as the message. After the application has issued the packet; the transport layer takes over. This layer packs the message from the application-layer with header-information (according to protocol used), and sends this segment between the application endpoints. The segment is packet into a datagram delivered to the destination host by the network layer. This datagram packet contains information about sender/receiver address, IP-version, checksums, and other header information. To actually make this transfer possible; the network layer relies on the service from the link layer – which actually delivers the datagram between each node in the network.

Example encapsulation
On sending:

Data is packed in header by the TFTP.

TFTP is packed by the UDP.

UDP is packed by the IP.

IP is packed by the Ethernet.

On recieving:

Hardware strips the Ethernet header.

Kernel strips the IP and the UDP headers.

TFTP program strips the TFTP header, and finally has the data.