Sunday, 27 July 2014

Functions of OSI Layer - Application Layer

Functions of OSI MODEL - Application Layer

The application layer consists of what most users think of as programs. The application does the actual work at hand. Although each application is different, some applications are so useful that they have become standardized. The Internet has defined standards for:

File transfer (FTP): Connect to a remote machine and send or fetch an arbitrary file. FTP deals with authentication, listing a directory contents, ASCII or binary files, etc.

Remote login (telnet): A remote terminal protocol that allows a user at one site to establish a TCP connection to another site, and then pass keystrokes from the local host to the remote host.

Mail (SMTP): Allow a mail delivery agent on a local machine to connect to a mail delivery agent on a remote machine and deliver mail.

News (NNTP): Allows communication between a news server and a news client.

Web (HTTP): Base protocol for communication on the World Wide Web.

Functions of OSI Layers- Presentation Layer

Functions of OSI MODEL - Presentation Layer

This layer is concerned with Syntax and Semantics of the information transmitted, unlike other layers, which are interested in moving data reliably from one machine to other. Few of the services that Presentation layer provides are:
1. Encoding data in a standard agreed upon way.
2. It manages the abstract data structures and converts from representation used inside computer to network standard representation and back.

Functions of OSI MODEL - Session Layer

Functions of OSI MODEL - Session Layer

This layer allows users on different machines to establish session between them. A session allows ordinary data transport but it also provides enhanced services useful in some applications. A session may be used to allow a user to log into a remote time-sharing machine or to transfer a file between two machines. Some of the session related services are:
1. This layer manages Dialogue Control. Session can allow traffic to go in both direction at the same time, or in only one direction at one time.
2. Token management. For some protocols, it is required that both sides don't attempt same operation at the same time. To manage these activities, the session layer provides tokens that can be exchanged. Only one side that is holding token can perform the critical operation. This concept can be seen as entering into a critical section in operating system using semaphores.
3. Synchronization. Consider the problem that might occur when trying to transfer a 4-hour file transfer with a 2-hour mean time between crashes. After each transfer was aborted, the whole transfer has to start again and again would probably fail. To Eliminate this problem, Session layer provides a way to insert checkpoints into data streams, so that after a crash, only the data transferred after the last checkpoint have to be repeated.

Functions of OSI MODEL - Transport Layer

Transport Layer

The transport level provides end-to-end communication between processes executing on different machines. Although the services provided by a transport protocol are similar to those provided by a data link layer protocol, there are several important differences between the transport and lower layers:
1. User Oriented. Application programmers interact directly with the transport layer, and from the programmers perspective, the transport layer is the ``network''. Thus, the transport layer should be oriented more towards user services than simply reflect what the underlying layers happen to provide. (Similar to the beautification principle in operating systems.)
2. Negotiation of Quality and Type of Services. The user and transport protocol may need to negotiate as to the quality or type of service to be provided. Examples? A user may want to negotiate such options as: throughput, delay, protection, priority, reliability, etc.
3. Guarantee Service. The transport layer may have to overcome service deficiencies of the lower layers (e.g. providing reliable service over an unreliable network layer).
4. Addressing becomes a significant issue. That is, now the user must deal with it; before it was buried in lower levels.
Two solutions:

Use well-known addresses that rarely if ever change, allowing programs to ``wire in'' addresses. For what types of service does this work? While this works for services that are well established (e.g., mail, or telnet), it doesn't allow a user to easily experiment with new services.

Use a name server. Servers register services with the name server, which clients contact to find the transport address of a given service.
In both cases, we need a mechanism for mapping high-level service names into low-level encoding that can be used within packet headers of the network protocols. In its general
form, the problem is quite complex. One simplification is to break the problem into two parts: have transport addresses be a combination of machine address and local process on that machine.
5. Storage capacity of the subnet. Assumptions valid at the data link layer do not necessarily hold at the transport Layer. Specifically, the subnet may buffer messages for a potentially long time, and an ``old'' packet may arrive at a destination at unexpected times.
6. We need a dynamic flow control mechanism. The data link layer solution of reallocating buffers is inappropriate because a machine may have hundreds of connections sharing a single physical link. In addition, appropriate settings for the flow control parameters depend on the communicating end points (e.g., Cray supercomputers vs. PCs), not on the protocol used.
Don't send data unless there is room. Also, the network layer/data link layer solution of simply not acknowledging frames for which the receiver has no space is unacceptable. Why? In the data link case, the line is not being used for anything else; thus retransmissions are inexpensive. At the transport level, end-to-end retransmissions are needed, which wastes resources by sending the same packet over the same links multiple times. If the receiver has no buffer space, the sender should be prevented from sending data.
7. Deal with congestion control. In connectionless Internets, transport protocols must exercise congestion control. When the network becomes congested, they must reduce rate at which they insert packets into the subnet, because the subnet has no way to prevent itself from becoming overloaded.
8. Connection establishment. Transport level protocols go through three phases: establishing, using, and terminating a connection. For data gram-oriented protocols, opening a connection simply allocates and initializes data structures in the operating system kernel.
Connection oriented protocols often exchanges messages that negotiate options with the remote peer at the time a connection are opened. Establishing a connection may be tricky because of the possibility of old or duplicate packets.
Finally, although not as difficult as establishing a connection, terminating a connection presents subtleties too. For instance, both ends of the connection must be sure that all the data in their queues have been delivered to the remote application.

Functions of the OSI MODEL - Network Layer

Network Layer
The basic purpose of the network layer is to provide an end-to-end communication capability in contrast to machine-to-machine communication provided by the data link layer. This end-to-end is performed using two basic approaches known as connection-oriented or connectionless network-layer services.
1.2.4.3.1 Four issues:
1. Interface between the host and the network (the network layer is typically the boundary between the host and subnet)
2. Routing
3. Congestion and deadlock
4. Internetworking (A path may traverse different network technologies (e.g., Ethernet, point-to-point links, etc.)
1.2.4.3.2 Network Layer Interface
There are two basic approaches used for sending packets, which is a group of bits that includes data plus source and destination addresses, from node to node called virtual circuit and datagram methods. These are also referred to as connection-oriented and connectionless network-layer services. In virtual circuit approach, a route, which consists of logical connection, is first established between two users. During this establishment phase, the two users not only agree to set up a connection between them but also decide upon the quality of service to be associated with the connection. The well-known virtual-circuit protocol is the ISO and CCITT X.25 specification. The datagram is a self-contained message unit, which contains sufficient information for routing from the source node to the destination node without dependence on previous message interchanges between them. In contrast to the virtual-circuit method, where a fixed path is explicitly set up before message transmission, sequentially transmitted messages can follow completely different paths. The datagram method is analogous to the postal system and the virtual-circuit method is analogous to the telephone system.
1.2.4.3.3 Overview of Other Network Layer Issues:
The network layer is responsible for routing packets from the source to destination. The routing algorithm is the piece of software that decides where a packet goes next (e.g., which output line, or which node on a broadcast channel).
For connectionless networks, the routing decision is made for each datagram. For connection-oriented networks, the decision is made once, at circuit setup time.

Routing Issues:
The routing algorithm must deal with the following issues:

Correctness and simplicity: networks are never taken down; individual parts (e.g., links, routers) may fail, but the whole network should not.

Stability: if a link or router fails, how much time elapses before the remaining routers recognize the topology change? (Some never do.)

Fairness and optimality: an inherently intractable problem. Definition of optimality usually doesn't consider fairness. Do we want to maximize channel usage? Minimize average delay?
When we look at routing in detail, we'll consider both adaptive--those that take current traffic and topology into consideration--and non-adaptive algorithms.
1.2.4.3.4 Congestion The network layer also must deal with congestion:

When more packets enter an area than can be processed, delays increase and performance decreases. If the situation continues, the subnet may have no alternative but to discard packets.

If the delay increases, the sender may (incorrectly) retransmit, making a bad situation even worse.

Overall, performance degrades because the network is using (wasting) resources processing packets that eventually get discarded.
1.2.4.3.5 Internetworking Finally, when we consider internetworking -- connecting different network technologies together -- one finds the same problems, only worse:

Packets may travel through many different networks

Each network may have a different frame format

Some networks may be connectionless, other connection oriented
1.2.4.3.6 Routing
Routing is concerned with the question: Which line should router J use when forwarding a packet to router K?
There are two types of algorithms:

Adaptive algorithms use such dynamic information as current topology, load, delay, etc. to select routes.

In non-adaptive algorithms, routes never change once initial routes have been selected. Also called static routing.
Obviously, adaptive algorithms are more interesting, as non-adaptive algorithms don't even make an attempt to handle failed links.

Functions of the OSI Layers - Data Link Layer

Functions of the OSI Layers

Data Link Layer
The goal of the data link layer is to provide reliable, efficient communication between adjacent machines connected by a single communication channel. Specifically:
1. Group the physical layer bit stream into units called frames. Note that frames are nothing more than ``packets'' or ``messages''. By convention, we shall use the term ``frames'' when discussing DLL packets.


2. Sender calculates the checksum and sends checksum together with data. The checksum allows the receiver to determine when a frame has been damaged in transit or received correctly.

3. Receiver recomputes the checksum and compares it with the received value. If they differ, an error has occurred and the frame is discarded.
4. Error control protocol returns a positive or negative acknowledgment to the sender. A positive acknowledgment indicates the frame was received without errors, while a negative acknowledgment indicates the opposite.
5. Flow control prevents a fast sender from overwhelming a slower receiver. For example, a supercomputer can easily generate data faster than a PC can consume it.
6. In general, data link layer provides service to the network layer. The network layer wants to be able to send packets to its neighbors without worrying about the details of getting it there in one piece.
1.2.4.2.1 Design Issues Below are the some of the important design issues of the data link layer:
a). Reliable Delivery:
Frames are delivered to the receiver reliably and in the same order as generated by the sender. Connection state keeps track of sending order and which frames require retransmission. For example, receiver state includes which frames have been received, which ones have not, etc.
b). Best Effort: The receiver does not return acknowledgments to the sender, so the sender has no way of knowing if a frame has been successfully delivered.
When would such a service be appropriate?
1. When higher layers can recover from errors with little loss in performance. That is, when errors are so infrequent that there is little to be gained by the data link layer performing the recovery. It is just as easy to have higher layers deal with occasional loss of packet.
2. For real-time applications requiring ``better never than late'' semantics. Old data may be worse than no data.
c). Acknowledged Delivery
The receiver returns an acknowledgment frame to the sender indicating that a data frame was properly received. This sits somewhere between the other two in that the sender keeps connection state, but may not necessarily retransmit unacknowledged frames. Likewise, the receiver may hand over received packets to higher layer in the order in


which they arrive, regardless of the original sending order. Typically, each frame is assigned a unique sequence number, which the receiver returns in an acknowledgment frame to indicate which frame the ACK refers to. The sender must retransmit unacknowledged (e.g., lost or damaged) frames.
d). Framing
The DLL translates the physical layer's raw bit stream into discrete units (messages) called frames. How can the receiver detect frame boundaries? Various techniques are used for this: Length Count, Bit Stuffing, and Character stuffing.
e). Error Control
Error control is concerned with insuring that all frames are eventually delivered (possibly in order) to a destination. To achieve this, three items are required: Acknowledgements, Timers, and Sequence Numbers.
f). Flow Control
Flow control deals with throttling the speed of the sender to match that of the receiver. Usually, this is a dynamic process, as the receiving speed depends on such changing factors as the load, and availability of buffer space.
1.2.4.2.2 Link Management In some cases, the data link layer service must be ``opened'' before use:

The data link layer uses open operations for allocating buffer space, control blocks, agreeing on the maximum message size, etc.

Synchronize and initialize send and receive sequence numbers with its peer at the other end of the communications channel.
1.2.4.2.3 Error Detection and Correction
In data communication, error may occur because of various reasons including attenuation, noise. Moreover, error usually occurs as bursts rather than independent, single bit errors. For example, a burst of lightning will affect a set of bits for a short time after the lightning strike. Detecting and correcting errors requires redundancy (i.e., sending additional information along with the data).
There are two types of attacks against errors:

Error Detecting Codes: Include enough redundancy bits to detect errors and use ACKs and retransmissions to recover from the errors. Example: parity encoding.

Error Correcting Codes: Include enough redundancy to detect and correct errors. Examples: CRC checksum, MD5.

Functions of the OSI Layers - Physical Layer

Functions of the OSI Layers

Functions of different layers of the OSI model are presented in this section.
1.2.4.1 Physical Layer
The physical layer is concerned with transmission of raw bits over a communication channel. It specifies the mechanical, electrical and procedural network interface specifications and the physical transmission of bit streams over a transmission medium connecting two pieces of communication equipment. In simple terns, the physical layer decides the following:

Number of pins and functions of each pin of the network connector (Mechanical)

Signal Level, Data rate (Electrical)

Whether simultaneous transmission in both directions

Establishing and breaking of connection

Deals with physical transmission
There exist a variety of physical layer protocols such as RS-232C, Rs-449 standards developed by Electronics Industries Association (EIA).