The application layer is the OSI layer closest to the end user, which means that both the OSI application layer and the user interact directly with the software application. This layer interacts with software applications that implement a communicating component. Such application programs fall outside the scope of the OSI model. Application-layer functions typically include identifying communication partners, determining resource availability, and synchronizing communication.

When identifying communication partners, the application layer determines the identity and availability of communication partners for an application with data to transmit. When determining resource availability, the application layer must decide whether sufficient network resources for the requested communication exist. In synchronizing communication, all communication between applications requires cooperation that is managed by the application layer.

Two key types of application-layer implementations are TCP/IP applications and OSI applications. TCP/IP applications are protocols, such as Telnet, File Transfer Protocol (FTP), and Simple Mail Transfer Protocol (SMTP), that exist in the Internet Protocol suite. OSI applications are protocols, such as File Transfer, Access, and Management (FTAM), Virtual Terminal Protocol (VTP), and Common Management Information Protocol (CMIP), that exist in the OSI suite.

The presentation layer provides a variety of coding and conversion functions that are applied to application layer data. These functions ensure that information sent from the application layer of one system will be readable by the application layer of another system. Some examples of presentation-layer coding and conversion schemes include common data representation formats, conversion of character representation formats, common data compression schemes, and common data encryption schemes.

Common data representation formats, or the use of standard image, sound, and video formats, enable the interchange of application data between different types of computer systems. Conversion schemes are used to exchange information with systems by using different text and data representations, such as EBCDIC and ASCII. Standard data compression schemes enable data that is compressed at the source device to be properly decompressed at the destination. Standard data encryption schemes enable data encrypted at the source device to be properly deciphered at the destination. Presentation-layer implementations are not typically associated with a particular protocol stack. The following serve to direct graphic and visual image presentations:

PICT

-Picture format used by Mac and PowerPC programs for transferring Quick
draw graphics.

The session layer establishes, manages, and terminates communication sessions between presentation layer entities. Communication sessions consist of service requests and service responses that occur between applications located in different network devices. These requests and responses are coordinated by protocols implemented at the session layer. Some examples of session-layer implementations include Zone Information Protocol (ZIP), the AppleTalk protocol that coordinates the name binding process; and Session Control Protocol (SCP), the DECnet Phase IV session-layer protocol. Also provides dialog control between devices or nodes. Coordinates and organizes communications between system by offering three different modes: simplex, half-duplex, and full-duplex. The layer basically keeps different applications' data separate from other applications' data.

Session Layer Protocols and Interfaces

NFS

-Network File System, developed by Sun Microsystems and used with TCP/IP
and Unix workstations to allow transparent access to remote resources.

SQL

-Developed by IBM to provide users with a simpler way to define their information
requirements on both local and remote systems.

RPC

-A broad client / server redirection tool used for disparate service
environment. Its procedures are created on clients and performed on
servers.

X Window

-Widely used by intelligent terminals for communications with remote Unix
computers, allowing them to operate as though they were locally attached
monitors.

The transport layer implements reliable internetwork data transport services that are transparent to upper layers. Transport-layer functions typically include flow control, multiplexing, virtual circuit management, and error checking and recovery. Services located in Transport layer both segment and reassemble data from upper layer applications and unite it onto the same data stream. They provide end-to-end data transport services and can establish a logical connection between the sending host and destination host on an Internetwork. It also hides details of any network dependent information from the higher layer by providing transparent data transfer.

Flow Control

-Data integrity is ensured by maintaining flow control and allowing users the option to request reliable data transport between systems. Flow control manages data transmission between devices so that the transmitting device does not send more data than the receiving device can process. Reliable data transport employs a connection-oriented communication session between systems. The protocols ensure that the following are achieved:

The Transport layer is responsible for providing mechanisms for multiplexing upper layer applications. Multiplexing enables data from several applications to be transmitted onto a single physical link.

Virtual Circuits

Virtual circuits are established, maintained, and terminated by the transport layer.

Error Checking and Recovery

Error checking involves creating various mechanisms for detecting transmission errors, while error recovery involves taking an action, such as requesting that data be retransmitted, to resolve any errors that occur.

Acknowledgments

-Positive acknowledgement with retransmission ensures that reliable data delivery by requiring a receiving machine to send an acknowledgment message to
the sender when it receives data. The sending machine documents each segment sent and waits for an acknowledgment before sending the next
segment. Using windowing, the machine will transfer an agreed upon number of segments. If the receiving machine receives all the segments intact, it
will request the next segment of the next window. If it misses a segment, it will request the missing segment and will transmit a request for the next
segment of the next window, when the first window's segments are all received.

-During a transfer, congestion can occur because high speed computers can generate data faster that the network can transfer it or because many computers
are using the network and sending datagrams through a single gateway. When a machine receives a flood of datagrams, it stores them in a buffer. If
the buffer fills, all additional datagrams are discarded. Transport can issue a "not ready" signal to stop a device from transmitting
additional segments. Once the buffer is emptied, it sends a "ready" transport indicator. When the waiting machine receives this
"go" signal, it continues where it left off. To avoid failures in data transfers, the receiving host acknowledges every segment it receives.

Connection-Oriented Communications

-In reliable transport operations

One device first establishes a connection oriented session with is peer (Initiation)

Both host's application programs begin by notifying their individual Operating Systems that a connection is about to be initiated. (Synchronization)

The two Operating Systems communicate by sending messages over the network confirming that the transfer is approved and both sides are ready for it to take place. (Negotiating)

Once the synchronization is complete, a connection is fully established and data transfer begins. (Established)

The data transfers. While the information is being transferred between hosts, the two machines periodically check in with each other, communicating through their protocol software to ensure that all is going well and that data is being received properly.

Windowing

-A window is the number of segments that can be sent without receiving an acknowledgement. Windowing can increase the throughput for data exchanges
by limiting the number of acknowledgments needed for total segments transferred. Example: if the window size is three then an acknowledgment is required after
the third segment is transferred.

The Network layer provides routing and related functions that enable multiple data links to be combined into an internetwork. This is accomplished by the logical addressing (as opposed to the physical addressing) of devices. The network layer supports both connection-oriented and connectionless service from higher-layer protocols. Network-layer protocols typically are routing protocols, but other types of protocols are implemented at the network layer as well. Routers work at this level and provide the routing services for an internetwork.

Routing a Packet

The router receives the packet and looks up the destination IP address.

If the packet isn't destined for the router, the router looks for the destination address in the routing table.

Once the destination interface is found, the packet will be sent to the interface.

At the destination interface, the packet is framed and sent out on the local network.

-There are two types of packets at the Network layer.

Data Packets

-Used to transport user data through internetwork.

-Uses routed protocols such as: IP and IPX.

Router Update Packets

-Used to update neighbor routers about networks connected to routers on the internetwork.

-Routing protocols: RIP, EIGRP, OSPF.

-Builds and maintains routing tables on each router.

Routing Table

Network Address

-Protocol specific network addresses. A table is maintained for individual routing protocols since each protocol keeps track of a network with
a different addressing scheme.

Interface

-The interface the packet is sent out on when destined for a particular network.

Metric

-The distance to the remote network.

-Routers breakup broadcast domains by not forwarding broadcast or multicast packets through a router. They also breakup collision domains as each
interface is a separate network.

-Routers use logical addresses in a network layer header to determine the next hop router to forward the packet to.

-Routers can use access lists to control security on packets entering or leaving an interface.

-Routers can provide layer 2 bridging and can simultaneously route through the same interface

-Routers provide connections between Virtual LANs. (VLANs)

-Routers can provide Quality of Service for specific types of network traffic.

Network layer addressing is referred to as logical addressing, whereas Data Link layer addressing uses physical addresses. The physical address of a device can't be changed without removing or replacing the hardware (physical address is burned into a NIC's ROM); while a logical address is configured in software and can be changed as needed.

The Data Link layer provides reliable transit of data across a physical network link. Different Data Link layer specifications define different network and protocol characteristics, including physical addressing, network topology, error notification, sequencing of frames, and flow control. The Data Link layer translates messages from the Network layer into bits for the Physical layer to transmit. It formats messages into data frames and adds a customized header containing the source and destination hardware addresses. Data Link layer is responsible for uniquely identifying each device on a local network.

Network topology consists of the data link layer specifications that often define how devices are to be physically connected, such as in a bus or a ring topology.

Error notification alerts upper-layer protocols that a transmission error has occurred, and the sequencing of data frames reorders frames that are transmitted out of sequence.

Flow control moderates the transmission of data so that the receiving device is not overwhelmed with more traffic than it can handle at one time.

-When a packet is sent between routers, it is framed with control information at the Data Link layer. The information is removed at the destination router and only the original packet remains. If the packet is to go to another router, the framing process is repeated until it gets to the receiving
host. The packet is never altered, only encapsulated with control information to be passed on to the different media type.

The IEEE has subdivided the data link layer into two sublayers: Logical Link Control (LLC) and Media Access Control (MAC).

MAC (Media Access Control)

The Media Access Control (MAC) sublayer of the data link layer manages protocol access to the physical network medium. The IEEE MAC specification defines MAC addresses, which enable multiple devices to uniquely identify one another at the data link layer.

--The MAC describes how a station schedules, transmits and receives data on a shared media environment.

--Line discipline, error notification, ordered delivery of frames, and optional flow control can be used at this layer.

--In General, MACs are only important in shared medium environments where multiple nodes can connect to the same transmission medium.

LLC (Logical Link Control)

The Logical Link Control (LLC) sublayer of the data link layer manages communications between devices over a single link of a network. LLC is defined in the IEEE 802.2 specification and supports both connectionless and connection-oriented services used by higher-layer protocols. IEEE 802.2 defines a number of fields in data link layer frames that enable multiple higher-layer protocols to share a single physical data link.

--A LLC header tells the Data Link layer what to do with a packet once it is received.

Switches and Bridges

Work at Data Link layer and filter network using MAC addresses. Layer 2 switching is hardware based switching because it uses an ASIC (Application Specific Integrated Circuit).

Switches and Bridges read each frame as it passes through, it then puts the source address in a filter table and keeps track of which port it was received on. This tells the switch where that device is located.

After a filter table is built, the device will only forward frames to the segment where the destination address is located. If the destination device is on the same segment as the frame, the layer 2 device will block it from being forwarded. If the destination is on another segment, the frame will only be forwarded to that segment (transparent bridging).

When a layer 2 device receives a frame and the destination is unknown to the device's filter table, it will forward the frame to all connected segments. If the unknown device replies, the filter table is updated with that device's location.

-Layer 2 devices (Switches / Bridges) propagate broadcast storms and the only way to prevent them is with a router.

-Hubs are multiple port repeaters. A repeater receives a signal, regenerates the digital signal, and forwards it on all active ports. An active hub does the same thing. All devices plugged into a hub are on the same collision and the same broadcast domains. Hubs don't look at any traffic that enters, it just forwards all traffic to all ports. Every device connected to the hub must listen if a device transmits.