The framework for internetworking is based on a set of standards. Most of today's internetwork technology is based on the work of standards bodies, such as the IAB/IETF, IEEE, ANSI, and the ITU; however, the model most often used for positioning this technology is the Open Systems Interconnection (OSI) reference model, developed by the International Organization for Standardization (ISO). Although occasionally problematic, this model is still one of the best ways to represent protocols, applications, and internetworking hardware in context. The OSI model presents an abstract seven-layer architecture and should not be confused with the OSI protocol suite; in real-world internetwork designs the TCP/IP protocol suite dominates the market.
Today's large-scale, heterogeneous, multivendor internetworks would not exist without standards; there would be chaos. Over the past few decades there are several key organizations that have provided forums for discussion groups and contributed to internetworking standards through the development of formal specifications. Some of the most important organizations include the following:
International Organization for Standardization (ISO)—ISO is a voluntary body, responsible for a wide range of standards, including many that are relevant to networking. Their best-known contribution is the development of the ISO OSI reference model and the OSI protocol suite.
Internet Advisory Board (IAB)—IAB is a group of internetwork researchers who discuss Internet-related issues and set Internet policies through decisions and task forces. The IAB coordinates a huge number of Request for Comments (RFC) documents, which are broadly divided into informational, experimental, proposed, drafts, and full standards. Some of the best-known standards include protocols in the TCP/IP suite (e.g., TCP, IP, ICMP, ARP, RIP, OSPF, and SNMP).
Institute of Electrical and Electronics Engineers (IEEE)—IEEE is a professional organization that defines networking and other standards. It is made up of representatives primarily from the user and equipment manufacturing communities. The IEEE is perhaps best known for the widely used LAN standards, such as IEEE 802.3 and IEEE 802.5.
American National Standards Institute (ANSI)—ANSI (a member of the ISO) is the coordinating body for voluntary standards groups within the United States. ANSI has developed several communications standards, including the Fiber Distributed Data Interface (FDDI). ANSI attempts to adopt ISO standards, but its specifications may differ to reflect North American requirements.
Electronic Industries Association (EIA)—EIA is hardware oriented and specifies electrical transmission standards, including those used in networking. The EIA developed the widely used EIA/TIA-232 standard (formerly referred to as RS-232 and first issued in 1962).
International Telecommunications Union, Telecommunication Standardization Sector (ITU-T)—The ITU-T was formerly called the International Telephone and Telegraph Consultative Committee (CCITT). The ITU-T is now an international organization, made up mainly of the major carriers, that develops communication standards (perhaps the best known is X.25). See reference .
European Computer Manufacturers Association (ECMA)—ECMA is not a trade association as the name might imply; it is a noncommercial organization dedicated to the development of standards applicable to computer and communications technology. ECMA was formed in 1961 and now includes all European computer manufacturers. It works closely with ISO and the ITU-T.
National Bureau of Standards (NBS)—NBS is another very active international standards committee. The NBS has been active in the upper layers of the OSI standards, including the specification of the Government OSI stack, GOSIP. The NBS also produces the Federal Information Processing Standards (FIPS).
The OSI reference model emerged from early work done by the ISO standards group. The ISO OSI model comprises seven layers, as shown in Figure 1.3. This architecture was originally intended as the benchmark for the international standardization of computer network protocols. The ISO OSI model is said to be an open systems architecture, because it enables interworking between different systems over well-defined interfaces and protocols. The systems do not have to be from the same vendor, nor do they have to run on the same operating system.
Each OSI layer represents a discrete function (such as point-to-point connectivity, end-to-end connectivity, data presentation, etc.). The layering is somewhat arbitrary, although there is general agreement on the demarcation of functions (note, however, that several protocol stacks, such as IBM's SNA, do not fit this model well at all). Layers do not necessarily equate to a single protocol. In practice, layers may comprise a number of protocols; for example, the Data Link Layer is usually subdivided into the MAC and LLC sublayers, with different MAC protocols used to handle different media types. A brief summary of the key functions of each layer is as follows:
Application Layer—provides a set of services that act as the interface between the user application (such as file transfer, remote terminal access, or e-mail) and the communications protocol stack. The Application Layer communicates with a peer application protocol that resides on a remote system. In true OSI-speak the user application sits above Layer 7. However, it is commonplace in the TCP/IP world to see user applications sitting inside this layer, since many IP-based applications (Telnet, FTP, SMTP, etc.) have session, presentation, and application services integrated directly into the user application code.
Presentation Layer—concerned mainly with data manipulation rather than communications functions. This layer determines how data are to be represented and formatted. For example, ASCII to EBC DIC translation might take place here, as well as perhaps data compression. When data are being transmitted, they pass from the Application Layer to the Presentation Layer, and the Presentation Layer reformats and/or compresses these data before passing them on to the Session Layer. When data are received, they pass from the Session Layer to the Presentation Layer, where they may be reformatted and perhaps uncompressed before passing up to the Application Layer.
Session Layer—manages the process-to-process communication sessions between hosts. It's responsible for establishing and terminating connections between cooperating applications.
Transport Layer—performs end-to-end error detection and correction. This layer guarantees that the receiving application receives the data exactly as these data were sent. Examples include OSI transport classes 0-4, TCP, and Novell SPX.
Network Layer—manages network connections. It takes care of data packet routing between source and destination computers as well as network congestion. Examples include OSI IP, X.25 PLP, DoD IP, and Novell IPX.
Data Link Layer—provides reliable data delivery across the physical network. It doesn't assume that the underlying physical network is necessarily reliable. Examples of Data Link protocols include LLC 1–3, MAC (Token Ring, Ethernet), HDLC, LAPB, LAPD, LAPF, and PPP.
Physical Layer—responsible for transmitting and receiving bits over a physical communication channel (e.g., Ethernet). This layer has knowledge of voltage levels and of the pin connections to the physical hardware media.
Layers are used to abstract and isolate groups of related functions, so that development and flexibility is promoted through the use of well-defined interfaces (i.e., using the divide-and-conquer analogy). Each layer is insulated from the addressing details used by the layer below, so, for example, the Network Layer should never see the MAC header in frames passed upward (all MAC details should be stripped away before passing up to Layer 3, and so on through the stack). For performance or functionality reasons some of these rules are ignored (clearly it is much faster to simply pass pointers to a single packet buffer when one moves up or down the stack rather than perform multiple copies). In practice the seven-layer model is most widely used to position other (i.e., non-OSI) protocol suites in an attempt to understand what services they provide. For the purpose of this book, the most important protocol suite for internetwork design (especially large internetwork design) is TCP/IP
Addressing is an important concept in network design. In the context of network design we are primarily interested in Layer 2 (Data Link or MAC addresses) and Layer 3 (Network) addresses, although addresses higher up the stack are becoming more relevant for issues such as quality of service provisioning and network security. Layers 1 through 4 can be described as follows:
Layer 1—Strictly speaking there are no physical addresses in the OSI model. However, most users associate physical addresses with the term Medium Access Control (MAC) address. Technically the MAC layer is a sublayer of the OSI Data Link Layer (Layer 2), but since these addresses are typically burned into network interface cards and other networking hardware, it is reasonable to informally refer to the MAC address as the hardware address (OSI purists can debate this ad infinitum). MAC addresses assume a flat address space, with a universally unique address for each network device. Addresses are assigned by the original manufacturer of the data communications equipment. MAC addresses have two main parts: a manufacturing (MFG) code and an organizationally unique identifier (OUI).
The MFG code is assigned to each vendor by the IEEE. The vendor assigns a unique identifier to each board it produces. Users generally have no control over these addresses because MAC addresses are burned into devices at the time of manufacture. Some manufacturers do configure MAC addresses dynamically; for example, DEC routing protocols use dynamic MAC addresses, and hub manufacturers may use dynamic indexing from a fixed base address for multiple interface chassis.
Some vendors have been assigned their own universal addresses that contain an OUI. For instance, IBM has an identifier of Ox10005A, so, for example, all IBM token-ring cards that use IBM token-ring chip sets have the first six digits of their addresses begin with 0x10005A. Other identifiers are 0x000143 for IEEE 802 and 0x1000D4 for DEC. IEEE universal addresses, whether for token-ring or 802.3 stations, are all allocated out of the same common pool, but uniqueness is guaranteed.
Layer 2—Data Link addresses are called LSAPs in OSI terminology (Link Layer Service Access Points), although this is simply a Layer 2 abstraction and we are generally more concerned with the hardware address of a device (MAC address). As indicated previously, LSAPs are, strictly speaking, associated with the upper sublayer of the Data Link Layer (i.e., above the MAC layer). LSAPs are typically used to identify different protocol suites running over a common link layer (e.g., at a receiving station on an Ethernet network, TCP/IP, Novell IPX or OSI could be differentiated using unique LSAPs, where the frame type being used is IEEE 802.3 rather than EtherType).
Layer 3—Network addresses are called NSAPs in OSI terminology (Network Service Access Points). Network addresses are usually assigned by the network administrator (either statically or via a dynamic allocation protocol such as DHCP) as part of the overall network design hierarchy. Protocols such as IP, OSI, IPX, and Apple-Talk all use Layer 3 addressing. By assigning different network addresses, a network administrator creates subnetworks, which act as discrete traffic partitions and enable better control over routing information. In practice, network addresses are usually assigned statically for important resources, such as routers, Web, file, and database servers, whereas user devices are assigned addresses dynamically for ease of administration.
Layer 4—Transport addresses are referred to in the OSI world as Transport Service Access Points (TSAPs). In the IP world they are called ports. These addresses have only local significance for hosts but are important in network design, since they are a way of uniquely identifying applications running over the network. By using port numbers, firewalls and routers can deny or allow specific applications, and special bandwidth preferences can be set up to meet different quality of service requirements.
Above Layer 4 there are additional service access points corresponding to each layer in the OSI stack (SSAPs, PSAPS, or equivalents). These addresses are generally of interest only to end systems, security systems, high-level switches, and gateway devices.