Network - Protocol
A protocol is a set of predefined rules that govern how two or more processes communicate and interact to exchange data. The processes can be on the same machine or on different machines. For example, a transport-layer program on one machine uses a protocol to talk to the program's counterpart on another machine. Protocols are generally associated with particular services or tasks, such as data packaging or packet routing. A protocol specifies rules for setting up, carrying out, and terminating a communications connection, and also specifies the format the information packets must have when traveling across this connection. Some protocols require acknowledgment that an action has been successfully carried out, such as when a packet has been received. Under some circumstances, as in the case of a router going over modem-speed lines, such acknowledgments can slow down a transmission enough to throw off timing requirements for some protocols. Protocols can be distinguished by several types of properties: n The level, or layer, at which the protocol operates. n The network architecture for which the protocol is designed. For example, bus-oriented protocols look and behave differently (in their details) than do protocols associated with ring-based networks. n Whether the protocol is synchronous or asynchronous. n Whether the protocol is connectionoriented or connectionless. n Whether the protocol is character- or bit-oriented. This article discusses these distinctions. Individual protocols and types of protocols are covered in separate entries. A protocol stack, which consists of the protocols for a particular network architecture, includes protocols at different layers. Details Protocols and Layers of the protocols reflect the functions and services available at each layer. An application layer protocol is any of various protocols that provide services for applications. These protocols are the primary interface between applications and a network. In general, application layer protocols provide some type of access or handling (directory, file, or message) services for a process accessing a network. The application layer is defined as the topmost in both the seven-layer OSI Reference Model and the five-layer Internet layer model. However, the top Internet layer actually corresponds to the top three OSI model layers, so that an Internet-based application layer protocol may have a broader range or a different set of tasks than an OSI application layer protocol. Examples of application layer protocols include the following: CMIP and SNMP: OSI and Internet protocols, respectively, for network management and monitoring. FTAM and FTP: OSI and Internet protocols, respectively, for file transfer and handling. Sun's NFS and AT&T's RFS protocols are comparable. X.400 and SMTP: OSI and Internet protocols, respectively, for message handling and transfer. Telnet: Internet protocol for terminal emulation or for providing remote login capabilities. Application Layer Protocols 800 Protocol Presentation layer protocols are responsible for providing any conversion, compression, or formatting needed to make data suitable for transmission or use. Practically speaking, the presentation layer and presentation layer protocols rarely appear in pure form. Generally, the presentation layer merges with either the application layer above or the session layer below, or with both. For example, PostScript may be regarded as a presentation layer protocol-one that provides a format for graphics pages. However, PostScript can also be regarded as an application-a tool for creating page layouts. Other examples of presentation layer protocols include the following: n AFP (AppleTalk Filing Protocol), which is the top-level protocol in the AppleTalk protocol suite. As such, AFP also combines application- and presentation-layer services. n Various TCP/IP protocols, such as FTP (File Transfer Protocol) and SMTP (Simple Mail Transfer Protocol). Session layer protocols are responsible for maintaining, synchronizing, and sequencing the dialog in a network connection. As with the presentation layer, sessionlayer capabilities are often part of other configurations (for example, those that include the presentation layer). Presentation Layer Protocols Session Layer Protocols Examples of protocols that provide session-layer services include the following: n ADSP (AppleTalk Data Stream Protocol), which enables two nodes to establish a reliable connection for data transfer. n NetBEUI, which is an implementation and extension of NetBIOS. This protocol actually merges into the presentation layer. n NetBIOS, which actually spans the fifth, sixth, and seventh layers, but which includes capabilities for monitoring sessions to make sure they are running smoothly. n PAP (Printer Access Protocol), which provides access to a PostScript printer in an AppleTalk network. In the OSI Reference Model, transport layer protocols operate at the fourth, or transport, layer. This layer, or one very similar to it in other models, is important because it sits between the upper layers (which are strongly application-dependent) and the lower ones (which are network-dependent). Depending on whether the packets are being passed down the layers at the sender's end or up the layers at the receiver's end, the transport layer is responsible for ensuring that the packets are sent off or received in the proper sequence and format. To provide the capabilities required, several classes of transport layer protocols have been defined in the OSI Reference Model. Transport Layer Protocols Protocol 801 See the OSI Reference Model article for information about these protocols. Transport layer protocols include the following: TCP and UDP: Internet environment and most UNIX-based networks (connection-oriented and connectionless transport services, respectively) SPX: Novell NetWare environments PEP: XNS protocol suite from Xerox VOTS: DEC networks AEP, ATP, NBP and RTMP: AppleTalk protocol suite Network layer protocols are responsible for controlling the flow of data from end to end on the network, from the sender to the receiver. However, these protocols are not guaranteed to deliver the data successfully. To accomplish their tasks, network layer protocols rely on the services of the underlying data-link layer protocols. Network layer protocols can be connection-oriented or connectionless. Examples of network layer protocols include the following: CLNP and IP: OSI and Internet protocols, respectively DDP: AppleTalk protocol IPX: Novell NetWare protocol Data-link layer protocols are any of various protocols that provide network access for users or applications. These protocols are the interface between application programs and a physical network. In general, data-link layer protocols provide the network interface card (NIC) with the bytes to be transmitted onto the network. Examples of data-link layer protocols include the following: n Link-access protocols for various network architectures or configurations. For example, ELAP, FLAP, LLAP, and TLAP are the data-link layer protocols in an AppleTalk network. Other commonly used link-access protocols include LAPB and LAPD. n SDLC from the ISO (and the earlier HDLC, from IBM) n ARAP, PPP, and SLIP for remote access or for communications over telephone lines Synchronous protocols rely on timing to identify transmission elements and are most suited for transmissions that occur at a relatively constant rate. Asynchronous protocols, which are more suitable for transmissions that may occur in bursts, rely on special signals (start and stop bits) to mark the individual transmission elements. Both synchronous and asynchronous protocols are data-link layer protocols for transmitting bytes between a DTE (computer) and DCE (modem) or between two computers. Early synchronous protocols were byte- or character-oriented. For example, the character-oriented Bisync from IBM or the Network Layer Protocols Data-Link Layer Protocols Synchronous versus Asynchronous Protocols 802 Protocol, AARP (AppleTalk Address Resolution Protocol) byte-oriented DDCMP from DEC are synchronous protocols. Since timing requires the use of special signals, characters that were used for link control could not be used as data characters. Newer, bit-oriented protocols avoid this problem and are more efficient as a result. Examples of such bitoriented protocols include SDLC, HDLC, and LAPB. Most network protocols are asynchronous; most mainframe and terminalhandling protocols are synchronous. Connection-oriented transmissions take place over a single path, so that a destination address is needed only while the path is being determined. After that, the transmission proceeds along the same path. In connectionless service, data transmissions do not require an established connection between sender and receiver. Instead, packets are sent independently of each other and may take different paths to the destination. Each packet must include the source and destination addresses, however. Character- or byte-oriented protocols use bytes or characters to manage the communications link and for timing. A disadvantage of this method is that the bytes or characters used for the link control cannot be used as ordinary data bytes. Most early synchronous protocols, such as IBM's Bisync or Digital Equipment Corporation's DDCMP, were byte-oriented. Connectionless versus Connection-Oriented Protocols Bit-Oriented versus Byte-Oriented Protocols These have been superseded by more effi- cient bit-oriented protocols, which can establish timing and manage link controls with individual bits. Bit-oriented protocols transmit individual bits without regard to their interpretation. Such protocols can establish timing and manage data links using bit signals. Individual bits are used for timing (so that sender and receiver stay in synchrony) and also for link control. Examples of bit-oriented protocols include HDLC, SDLC, and LAPB.