Saturday, 5 March 2011

Packets

To transfer data effectively, many experiments have shown that creating a uniform chunk of data is better than sending characters singly or in widely varying sized groups. Usually these chunks of data have some information ahead of them (the header) and sometimes an indicator at the end (the trailer). These chunks of data are called packets in most synchronous communications systems.
The amount of data in a packet and the composition of the header can change depending on the communications protocol as well as some system limitations, but the concept of a packet always refers to the entire set (including header and trailer). The term packet is used often in the computer industry, sometimes when it shouldn't be.
You often see the word packet used as a generic reference to any group of data packaged for transmission. As an application's data passes through the layers of the architecture, each adds more information. The term packet is frequently used at each stage. Treat the term packet as a generalization for any data with additional information, instead of the specific result of only one layer's addition of header and trailer. This goes against the efforts of both OSI and the TCP governing bodies, but it helps keep your sanity intact!

Subsystems



A subsystem is the collective of a particular layer across a network. For example, if 10 machines are connected together, each running the seven-layer OSI model, all 10 application layers are the application subsystem, all 10 data link layers are the data link subsystem, and so on. As you might have already deduced, with the OSI Reference Model there are seven subsystems.
It is entirely possible (and even likely) that all the individual components in a subsystem will not be active at one time. Using the 10-machine example again, only three might have the data link layer actually active at any moment in time, but the cumulative of all the machines makes up the subsystem.

Entities



A layer can have more than one part to it. For example, the transport layer can have routines that verify checksums as well as routines that handle resending packets that didn't transfer correctly. Not all these routines are active at once, because they might not be required at any moment. The active routines, though, are called entities. The word entity was adopted in order to find a single term that could not be confused with another computer term such as module, process, or task.

N Notation



The notations N, N+1, N+2, and so on are used to identify a layer and the layers that are related to it. Referring to Figure 1.7, if the transport layer is layer N, the physical layer is N–3 and the presentation layer is N+2. With OSI, N always has a value of 1 through 7 inclusive.
One reason this notation was adopted was to enable writers to refer to other layers without having to write out their names every time. It also makes flow charts and diagrams of interactions a little easier to draw. The terms N+1 and N–1 are commonly used in both OSI and TCP for the layers above and below the current layer, respectively, as you will see.
To make things even more confusing, many OSI standards refer to a layer by the first letter of its name. This can lead to a real mess for the casual reader, because "S-entity," "5-entity," and "layer 5" all refer to the session layer.

N-Functions



Each layer performs N-functions. The functions are the different things the layer does. Therefore, the functions of the transport layer are the different tasks that the layer provides. For most purposes in this book, functions and entities mean the same thing.

N-Facilities



This uses the hierarchical layer structure to express the idea that one layer provides a set of facilities to the next higher layer. This is sensible, because the application layer expects the presentation layer to provide a robust, well-defined set of facilities to it. In OSI-speak, the (N+1)-entities assume a defined set of N-facilities from the N-entity.

Services



The entire set of N-facilities provided to the (N+1)-entities is called the N-service. In other words, the service is the entire set of N-functions provided to the next higher layer. Services might seem like functions, but there is a formal difference between the two. The OSI documents go to great lengths to provide detailed descriptions of services, with a "service definition standard" for each layer. This was necessary during the development of the OSI standard so that the different tasks involved in the communications protocol could be assigned to different layers, and so that the functions of each layer are both well-defined and isolated from other layers.
The service definitions are formally developed from the bottom layer (physical) upward to the top layer. The advantage of this approach is that the design of the N+1 layer can be based on the functions performed in the N layer, avoiding two functions that accomplish the same task in two adjacent layers.
An entire set of variations on the service name has been developed to apply these definitions, some of which are in regular use:
An N-service user is a user of a service provided by the N layer to the next higher (N+1) layer.
An N-service provider is the set of N-entities that are involved in providing the N layer service.
An N-service access point (often abbreviated to N-SAP) is where an N-service is provided to an (N+1)-entity by the N-service provider.
N-service data is the packet of data exchanged at an N-SAP.
N-service data units (N-SDUs) are the individual units of data exchanged at an N-SAP (so that N-service data is made up of N-SDUs).
These terms are shown in Figure 1.8. Another common term is encapsulation, which is the addition of control information to a packet of data. The control data contains addressing details, checksums for error detection, and protocol control functions.

Making Sense of the Jargon



It is important to remember that all these terms are used in a formal description, because a formal language is usually the only method to adequately describe something as complex as a communications protocol. It is possible, though, to fit these terms together so that they make a little more sense when you encounter them. An example should help.
The session layer has a set of session functions. It provides a set of session facilities to the layer above it, the presentation layer. The session layer is made up of session entities. The presentation layer is a user of the services provided by the session layer (layer 5). A presentation entity is a user of the services provided by the session layer and is called a presentation service user.
The session service provider is the collection of session entities that are actively involved in providing the presentation layer with the session's services. The point at which the session service is provided to the presentation layer is the session service access point, where the session service data is sent. The individual bits of data in the session service data are called session service data units.
Confusing? Believe it or not, after a while you will begin to feel more comfortable with these terms. The important ones to know now are that a layer provides a set of entities through a service access point to the next higher layer, which is called the service user. The data is sent in chunks called service data, made up of service data units.


Queues and Connections



Communication between two parties (whether over a telephone, between layers of an architecture, or between applications themselves) takes place in three distinct stages: establishment of the connection, data transfer, and connection termination.
Communication between two OSI applications in the same layer is through queues to the layer beneath them. Each application (more properly called a service user) has two queues, one for each direction to the service provider of the layer beneath (which controls the whole layer). In OSI-speak, the two queues provide for simultaneous (or atomic) interactions between two N-service action points.
Data, called service primitives, is put into and retrieved from the queue by the applications (service users). A service primitive can be a block of data, an indicator that something is required or received, or a status indicator. As with most aspects of OSI, a lexicon has been developed to describe the actions in these queues:
A request primitive is when one service submits a service primitive to the queue (through the N-SAP) requesting permission to communicate with another service in the same layer.
An indication primitive is what the service provider in the layer beneath the sending application sends to the intended receiving application to let it know that communication is desired.
A response primitive is sent by the receiving application to the layer beneath's service provider to acknowledge the granting of communications between the two service users.
A confirmation primitive is sent from the service provider to the final application to indicate that both applications on the layer above can now communicate.
An example might help clarify the process. Assume that two applications in the presentation layer want to communicate with each other. They can't do so directly (according to the OSI model), so they must go through the layer below them.
The first application sends a request primitive to the service provider of the session layer and waits. The session layer's service provider removes the request primitive from the inbound queue from the first application and sends an indication primitive to the second application's inbound queue.
The second application takes the indication primitive from its queue to the session service provider and decides to accept the request for connection by sending a positive response primitive back through its queue to the session layer. This is received by the session layer service provider, and a confirmation primitive is sent to the first application in the presentation layer. This is a process called confirmed service because the applications wait for confirmation that communications are established and ready.
OSI also provides for unconfirmed service, in which a request primitive is sent to the service provider, sending the indication primitive to the second application. The response and confirmation primitives are not sent. This is a sort of "get ready, because here it comes whether you want it or not" communication, often referred to as send and pray.
When two service users are using confirmed service to communicate, they are considered connected. Two applications are talking to each other, aware of what the other is doing with the service data. OSI refers to the establishment and maintenance of state information between the two, or the fact that each knows when the other is sending or receiving. OSI calls this connection-oriented or connection-mode communications.
Connectionless communication is when service data is sent independently, as with unconfirmed service. The service data is self-contained, possessing everything a receiving service user needs to know. These service data packets are often called datagrams. The application that sends the datagram has no idea who receives the datagram and how it is handled, and the receiving service users have no idea who sent it (other than information that might be contained within the datagram itself). OSI calls this connectionless-mode.
OSI (and TCP/IP) use both connected and connectionless systems between layers of their architecture. Each has its benefits and ideal implementations. All these communications are between applications (service users) in each layer, using the layer beneath to communicate. There are many service users, and this process is going on all the time. It's quite amazing when you think about it.

Layers

Suppose you have to write a program that provides networking functions to every machine on your LAN. Writing a single software package that accomplishes every task required for communications between different computers would be a nightmarish task. Apart from having to cope with the different hardware architectures, simply writing the code for all the applications you desire would result in a program that was far too large to execute or maintain.

Dividing all the requirements into similar-purpose groups is a sensible approach, much as a programmer breaks code into logical chunks. With open systems communications, groups are quite obvious. One group deals with the transport of data, another with the packaging of messages, another with end-user applications, and so on. Each group of related tasks is called a layer.

Of course, some crossover of functionality is to be expected, and several different approaches to the same division of layers for a network protocol were proposed. One that became adopted as a standard is the Open Systems Interconnection Reference Model (which is discussed in more detail in the next section). The OSI Reference Model (OSI-RM) uses seven layers, The TCP/IP architecture is similar but involves only five layers, because it combines some of the OSI functionality in two layers into one. For now, though, consider the seven-layer OSI model.
 
The application, presentation, and session layers are all application-oriented in that they are responsible for presenting the application interface to the user. All three are independent of the layers below them and are totally oblivious to the means by which data gets to the application. These three layers are called the upper layers.
 
The lower four layers deal with the transmission of data, covering the packaging, routing, verification, and transmission of each data group. The lower layers don't worry about the type of data they receive or send to the application, but deal simply with the task of sending it. They don't differentiate between the different applications in any way.
The following sections explain each layer to help you understand the architecture of the OSI-RM (and later contrast it with the architecture of TCP/IP).

The Application Layer:-

The application layer is the end-user interface to the OSI system. It is where the applications, such as electronic mail, USENET news readers, or database display modules, reside. The application layer's task is to display received information and send the user's new data to the lower layers.
In distributed applications, such as client/server systems, the application layer is where the client application resides. It communicates through the lower layers to the server.


The Presentation Layer:-

The presentation layer's task is to isolate the lower layers from the application's data format. It converts the data from the application into a common format, often called the canonical representation. The presentation layer processes machine-dependent data from the application layer into a machine-independent format for the lower layers.
The presentation layer is where file formats and even character formats (ASCII and EBCDIC, for example) are lost. The conversion from the application data format takes place through a "common network programming language" (as it is called in the OSI Reference Model documents) that has a structured format.
The presentation layer does the reverse for incoming data. It is converted from the common format into application-specific formats, based on the type of application the machine has instructions for. If the data comes in without reformatting instructions, the information might not be assembled in the correct manner for the user's application.


The Session Layer:-

The session layer organizes and synchronizes the exchange of data between application processes. It works with the application layer to provide simple data sets called synchronization points that let an application know how the transmission and reception of data are progressing. In simplified terms, the session layer can be thought of as a timing and flow control layer.
The session layer is involved in coordinating communications between different applications, letting each know the status of the other. An error in one application (whether on the same machine or across the country) is handled by the session layer to let the receiving application know that the error has occurred. The session layer can resynchronize applications that are currently connected to each other. This can be necessary when communications are temporarily interrupted, or when an error has occurred that results in loss of data.
 
The Transport Layer:-


The transport layer, as its name suggests, is designed to provide the "transparent transfer of data from a source end open system to a destination end open system," according to the OSI Reference Model. The transport layer establishes, maintains, and terminates communications between two machines.
The transport layer is responsible for ensuring that data sent matches the data received. This verification role is important in ensuring that data is correctly sent, with a resend if an error was detected. The transport layer manages the sending of data, determining its order and its priority.

The Network Layer:-


The network layer provides the physical routing of the data, determining the path between the machines. The network layer handles all these routing issues, relieving the higher layers from this issue.
The network layer examines the network topology to determine the best route to send a message, as well as figuring out relay systems. It is the only network layer that sends a message from source to target machine, managing other chunks of data that pass through the system on their way to another machine.
 
The Data Link Layer:-
 
The data link layer, according to the OSI reference paper, "provides for the control of the physical layer, and detects and possibly corrects errors that can occur." In practicality, the data link layer is responsible for correcting transmission errors induced during transmission (as opposed to errors in the application data itself, which are handled in the transport layer).
The data link layer is usually concerned with signal interference on the physical transmission media, whether through copper wire, fiber optic cable, or microwave. Interference is common, resulting from many sources, including cosmic rays and stray magnetic interference from other sources.

The Physical Layer:-

The physical layer is the lowest layer of the OSI model and deals with the "mechanical, electrical, functional, and procedural means" required for transmission of data, according to the OSI definition. This is really the wiring or other transmission form.
When the OSI model was being developed, a lot of concern dealt with the lower two layers, because they are, in most cases, inseparable. The real world treats the data link layer and the physical layer as one combined layer, but the formal OSI definition stipulates different purposes for each. (TCP/IP includes the data link and physical layers as one layer, recognizing that the division is more academic than practical.)

-:Terminology and Notations:-


Both OSI and TCP/IP are rooted in formal descriptions, presented as a series of complex documents that define all aspects of the protocols. To define OSI and TCP/IP, several new terms were developed and introduced into use; some (mostly OSI terms) are rather unusual. You might find the term OSI-speak used to refer to some of these rather grotesque definitions, much as legalese refers to legal terms.
To better understand the details of TCP/IP, it is necessary to deal with these terms now. You won't see all these terms in this book, but you might encounter them when reading manuals or online documentation. Therefore, all the major terms are covered here.



 

The Hub Network

A hub network uses a main cable much like the bus network, which is called the backplane. The hub topology is shown in Figure 1.4. From the backplane, a set of cables leads to a hub, which is a box containing several ports into which devices are plugged. The cables to a connection point are often called drops, because they drop from the backplane to the ports.

Hub networks can be very large, using a high-speed fiber optic backplane and slightly slower Ethernet drops to hubs from which a workgroup can be supported. The hub network can also be small, with a couple of hubs supporting a few devices connected together by standard Ethernet cables. The hub network is scaleable (meaning you can start small and expand as you need to), which is part of its attraction.
Hub networks have become popular for large installations, in part because they are easy to set up and maintain. They also can be the least expensive system in many larger installations, which adds to their attraction. The backplane can extend across a considerable distance just like a bus network, whereas the ports, or connection points, are usually grouped in a set placed in a box or panel. There can be many panels or connection boxes attached to the backplane


Wide Area Networks
As I mentioned earlier, LANs can be combined into a large entity called a WAN. WANs are usually composed of LANs joined together by a high-speed link (such as a telephone line or dedicated cable). At the entrance to each LAN, one or more machines act as the link between the LAN and WAN: these are called gateways. I talk about gateways and the types of gateways used in a WAN in more detail on many of the following days, but for now you need to know only that a gateway is the interface between a LAN and a WAN. The same applies for any LAN that accesses the Internet: one machine usually acts as the gateway from the LAN to the Internet (which is really just a very large WAN).
Many terms other than gateway are also used. You will hear terms like router and bridge. They are all gateways, but they perform slightly different tasks. To understand their roles (which I mention many times in the next week's material), you need to take a quick look at how WANs are laid out.
LANs can be tied to a WAN through a gateway that handles the passage of data between the LAN and WAN backbone. In a simple layout, a router is used to perform this function.
Another gateway device, called a bridge, is used to connect LANs using the same network protocol. Bridges are used only when the same network protocol (such as TCP/IP) is on both LANs. The bridge does not care which physical media is used. Bridges can connect twisted-pair LANs to coaxial LANs, for example, or act as an interface to a fiber optic network. As long as the network protocol is the same, the bridge functions properly.
If two or more LANs are involved in one organization and there is the possibility of a lot of traffic between them, it is better to connect the two LANs directly with a bridge instead of loading the backbone with the cross-traffic.

In a configuration using bridges between LANs, traffic from one LAN to another can be sent through the bridge instead of onto the backbone, providing better performance. For services such as Telnet and FTP, the speed difference between using a bridge and going through a router onto a heavily used backbone can be significant.
WANs are an important subject, and I look at them again in more detail on Day 13, "Managing and Troubleshooting TCP/IP."

Network Architectures

To understand networking protocols, it is useful to know a little about networks. A quick look at the most common network architectures will help later in this book when you read about network operations and routing. The term network usually means a set of computers and peripherals (printers, modems, plotters, scanners, and so on) that are connected together by some medium. The connection can be direct (through a cable) or indirect (through a modem). The different devices on the network communicate with each other through a predefined set of rules (the protocol).
The devices on a network can be in the same room or scattered through a building. They can be separated by many miles through the use of dedicated telephone lines, microwave, or a similar system. They can even be scattered around the world, again connected by a long-distance communications medium. The layout of the network (the actual devices and the manner in which they are connected to each other) is called the network topology.
Usually, if the devices on a network are in a single location such as a building or a group of rooms, they are called a local area network, or LAN. LANs usually have all the devices on the network connected by a single type of network cable. If the devices are scattered widely, such as in different buildings or different cities, they are usually set up into several LANs that are joined together into a larger structure called a wide area network, or WAN. A WAN is composed of two or more LANs. Each LAN has its own network cable connecting all the devices in that LAN. The LANs are joined together by another connection method, often high-speed telephone lines or very fast dedicated network cables called backbones, which I discuss in a moment.
One last point about WANs: they are often treated as a single entity for organizational purposes. For example, the ABC Software company might have branches in four different cities, with a LAN in each city. All four LANs are joined together by high-speed telephone lines. However, as far as the Internet and anyone outside the ABC Software company are concerned, the ABC Software WAN is a single entity. (It has a single domain name for the Internet. Don’t worry if you don’t known what a domain is at this point in time; it refers to a single entity for organizational purposes on the Internet, as you will see later.)

Local Area Networks:-

TCP/IP works across LANs and WANs, and there are several important aspects of LAN and WAN topologies you should know about. You can start with LANs and look at their topologies. Although there are many topologies for LANs, three topologies are dominant: bus, ring, and hub.

The Bus Network:-

The bus network is the simplest, comprising a single main communications pathway with each device attached to the main cable (bus) through a device called a transceiver or junction box. The bus is also called a backbone because it resembles a human spine with ribs emanating from it. From each transceiver on the bus, another cable (often very short) runs to the device's network adapter.

The primary advantage of a bus network is that it allows for a high-speed bus. Another advantage of the bus network is that it is usually immune to problems with any single network card within a device on the network. This is because the transceiver allows traffic through the backbone whether a device is attached to the junction box or not. Each end of the bus is terminated with a block of resistors or a similar electrical device to mark the end of the cable electrically. Each device on the pathway has a special identifying number, or address, that lets the device know that incoming information is for that device.
A bus network is seldom a straight cable. Instead, it is usually twisted around walls and buildings as needed. It does have a single pathway from one end to the other, with each end terminated in some way (usually with a resistor). a logical representation of the network, meaning it has simplified the actual physical appearance of the network into a schematic with straight lines and no real scale to the connections. A physical representation of the network would show how it goes through walls, around desks, and so on. Most devices on the bus network can send or receive data along the bus by packaging a message with the intended recipient's address.
A variation of the bus network topology is found in many small LANs that use Thin Ethernet cable (which looks like television coaxial cable) or twisted-pair cable (which resembles telephone cables). This type of network consists of a length of coaxial cable that snakes from machine to machine. Unlike the bus network , there are no transceivers on the bus. Instead, each device is connected into the bus directly using a T-shaped connector on the network interface card, often using a connector called a BNC. The connector connects the machine to the two neighbors through two cables, one to each neighbor. At the ends of the network, a simple resistor is added to one side of the T-connector to terminate the network electrically.
Each network device has a T-connector attached to the network interface card, leading to its two neighbors. The two ends of the bus are terminated with resistors.
This machine-to-machine (also called peer-to-peer) network is not capable of sustaining the higher speeds of the backbone-based bus network, primarily because of the medium of the network cable. A backbone network can use very high-speed cables such as fiber optics, with smaller (and slower) cables from each transceiver to the device. A machine-to-machine network is usually built using twisted-pair or coaxial cable because these cables are much cheaper and easier to work with. Until recently, machine-to-machine networks were limited to a throughput of about 10 Mbps (megabits per second), although recent developments called 100VG AnyLAN and Fast Ethernet allow 100 Mbps on this type of network.
The advantage of this machine-to-machine bus network is its simplicity. Adding new machines to the network means installing a network card and connecting the new machine into a logical place on the backbone. One major advantage of the machine-to-machine bus network is also its cost: it is probably the lowest cost LAN topology available. The problem with this type of bus network is that if one machine is taken off the network cable, or the network interface card malfunctions, the backbone is broken and must be tied together again with a jumper of some sort or the network might cease to function properly.
The Ring Network:-
A ring network topology is often drawn as its name suggests, shaped like a ring. You might have heard of a token ring network before, which is a ring topology network. You might be disappointed to find no physical ring architecture in a ring network, though.

The term ring is a misnomer because ring networks don't have an unending cable like a bus network with the two terminators joined together. Instead, the ring refers to the design of the central unit that handles the network's message passing. In a token ring network, the central control unit is called a Media Access Unit, or MAU. The MAU has a ring circuit inside it (for which the network topology is named). The ring inside the MAU serves as the bus for devices to obtain messages.

Open Systems, Standards, and Protocols

Today I start looking at the subject of TCP/IP by covering some background information you will need to put TCP/IP in perspective, and to understand why the TCP/IP protocols were designed the way they are. This chapter covers some important information, including the following:
  • What an open system is
  • How an open system handles networking
  • Why standards are required
  • How standards for protocols like TCP/IP are developed
  • What a protocol is
  • The OSI protocols
You might be eager to get started with the nitty-gritty of the TCP/IP protocols, or to find out how to use the better-known services like FTP and Telnet. If you have a specific requirement to satisfy (such as how to transfer a file from one system to another), by all means use the Table of Contents to find the section you want. But if you want to really understand TCP/IP, you will need to wade through the material in this chapter. It's not complicated, although there are quite a few subjects to be covered. Luckily, none of it requires memorization; more often than not it is a matter of setting the stage for something else I discuss in the next week or so. So don't get too overwhelmed by this chapter!

Open Systems
This is a book about a family of protocols called TCP/IP, so why bother looking at open systems and standards at all? Primarily because TCP/IP grew out of the need to develop a standardized communications procedure that would inevitably be used on a variety of platforms. The need for a standard, and one that was readily available to anyone (hence open), was vitally important to TCP/IP's success. Therefore, a little background helps put the design of TCP/IP into perspective.
More importantly, open systems have become de rigueur in the current competitive market. The term open system is bandied around by many people as a solution for all problems (to be replaced occasionally by the term client/server), but neither term is usually properly used or understood by the people spouting them. Understanding what an open system really is and what it implies leads to a better awareness of TCP/IP's role on a network and across large internetworks like the Internet.
In a similar vein, the use of standards ensures that a protocol such as TCP/IP is the same on each system. This means that your PC can talk to a minicomputer running TCP/IP without special translation or conversion routines. It means that an entire network of different hardware and operating systems can work with the same network protocols. Developing a standard is not a trivial process. Often a single standard involves more than a single document describing a software system. A standard often involves the interrelationship of many different protocols, as does TCP/IP. Knowing the interactions between TCP/IP and the other components of a communications system is important for proper configuration and optimization, and to ensure that all the services you need are available and interworking properly.
 
What Is an Open System?
 
There are many definitions of open systems, and a single, concise definition that everyone is happy with is far from being accepted. For most people, an open system is best loosely defined as one for which the architecture is not a secret. The description of the architecture has been published or is readily available to anyone who wants to build products for a hardware or software platform. This definition of an open system applies equally well to hardware and software.
When more than a single vendor begins producing products for a platform, customers have a choice. You don't particularly like Nocrash Software's network monitoring software? No problem, because FaultFree Software's product runs on the Nocrash hardware, and you like its fancy interface much better. You need a more colorful graphical front-end to your Whizbang PC than the one Whizbang provides? Download one from Super Software through the Internet, and it works perfectly. The primary idea, of course, is a move away from proprietary platforms to one that is multivendor.
A decade ago, open systems were virtually nonexistent. Each hardware manufacturer had a product line, and you were practically bound to that manufacturer for all your software and hardware needs. Some companies took advantage of the captive market, charging outrageous prices or forcing unwanted configurations on their customers. The groundswell of resentment grew to the point that customers began forcing the issue. The lack of choice in software and hardware purchases is why several dedicated minicomputer and mainframe companies either went bankrupt or had to accept open system principles: their customers got fed up with relying on a single vendor. A good example of a company that made the adaptation is Digital Equipment Corporation (DEC). They moved from a proprietary operating system on their VMS minicomputers to a UNIX-standard open operating system. By doing that, they kept their customers happy, and they sold more machines. That's one of the primary reasons DEC is still in business today.
UNIX is a classic example of an open software platform. UNIX has been around for 30 years. The source code for the UNIX operating system was made available to anyone who wanted it, almost from the start. UNIX's source code is well understood and easy to work with, the result of 30 years of development and improvement. UNIX can be ported to run on practically any hardware platform, eliminating all proprietary dependencies. The attraction of UNIX is not the operating system's features themselves but simply that a UNIX user can run software from other UNIX platforms, that files are compatible from one UNIX system to another (except for disk formats), and that a wide variety of vendors sell products for UNIX.
The growth of UNIX pushed the large hardware manufacturers to the open systems principle, resulting in most manufacturers licensing the right to produce a UNIX version for their own hardware. This step let customers combine different hardware systems into larger networks, all running UNIX and working together. Users could move between machines almost transparently, ignorant of the actual hardware platform they were on. Open systems, originally of prime importance only to the largest corporations and governments, is now a key element in even the smallest company's computer strategy.
 
The term open system networking means many things, depending on whom you ask. In its broadest definition, open system networking refers to a network based on a well-known and understood protocol (such as TCP/IP) that has its standards published and readily available to anyone who wants to use them. Open system networking also refers to the process of networking open systems (machaine-specific hardware and software) using a network protocol. It is easy to see why people want open systems networking, though. Three services are widely used and account for the highest percentage of network traffic: file transfer, electronic mail, and remote login. Without open systems networking, setting up any of these three services would be a nightmare.
File transfers enable users to share files quickly and efficiently, without excessive duplication or concerns about the transport method. Network file transfers are much faster than an overnight courier crossing the country, and usually faster than copying a file on a disk and carrying it across the room. File transfer is also extremely convenient, which not only pleases users but also eliminates time delays while waiting for material. A common open system governing file transfers means that any incompatibilities between the two machines transferring files can be overcome easily.
Electronic mail has mushroomed to a phenomenally large service, not just within a single business but worldwide. The Internet carries millions of messages from people in government, private industry, educational institutions, and private interests. Electronic mail is cheap (no paper, envelope, or stamp) and fast (around the world in 60 seconds or so). It is also an obvious extension of the computer-based world we work in. Without an open mail system, you wouldn't have anywhere near the capabilities you now enjoy.
Finally, remote logins enable a user who is based on one system to connect through a network to any other system that accepts him as a user. This can be in the next workgroup, the next state, or in another country. Remote logins enable users to take advantage of particular hardware and software in another location, as well as to run applications on another machine. Once again, without an open standard, this would be almost impossible.
 

Modem Control Codes 2

Extended Command Set

&Rn Received Data hardware (RTS) flow control
&R0 CTS tracks RTS
&R1 Ignore RTS—Default
&R2 Pass received data on RTS high; used Pass received data on RTS high Extended
Command Set
&Sn Data Set Ready (DSR) override
&S0 DSR override (always On—Default)
&S1 Modem controls DSR
&S2 Pulsed DSR; CTS follows CD
&S3 Pulsed DSR
&Tn Modem testing
&T0 End testing
&T1 Analog loopback
&T2 Reserved
&T3 Digital loopback
&T4 Grant remote digital loopback
&T5 Deny remote digital loopback
&T6 Initiate remote digital loopback
&T7 Remote digital loopback with self-test
&T8 Analog loopback with self-test
&W Write current settings to NVRAM
&Xn Synchronous timing source
&X0 Modem’s transmit clock—Default
&X1 Terminal equipment
&X2 Modem’s receiver clock
&Yn Break handling. Destructive breaks clear the buffer; expedited Breaks are sent immediately
to remote system
&Y0 Destructive, but don’t send break
&Y1 Destructive, expedited—Default
&Y2 Nondestructive, expedited
&Y3 Nondestructive, unexpedited
&Zn=L Store last-dialed phone number in NVRAM at position
&Zn=s Write phone number(s) to NVRAM at position n (0-3); 36 characters maximum
&Zn? Display phone number in NVRAM at position n (n=0-3)
%Rn Remote access to Rack Controller Unit (RCU)
%R0 Disabled
%R1 Enabled
%T Enable Touch-tone recognition

Modem S-Register Functions and Defaults

S0
disables Auto Answer, equivalent to DIP switch 5 Down
S1 Counts and stores number of rings from incoming call
S2 Define escape code character. Default = +
S3 Define ASCII carriage return
S4 Define ASCII line feed
S5 Define ASCII Backspace
S6 Number of seconds modem waits before dialing
S7 Number of seconds modem waits for a carrier
S8 Duration (sec) for pause (,) option in Dial command and pause between command reexecutions
for Repeat (>) command
S9 Duration (.1 sec units) of remote carrier signal before recognition
S10 Duration (.1 sec units) modem waits after loss of carrier before hanging up
S11 Duration and spacing (ms) of dialed touch-tones
S12 Guard time (in .02 sec units) for escape code sequence (+++)
S13 Bitmapped register:
1 Reset when DTR drops
2 Auto answer in originate mode
4 Disable result code pause
8 DS0 on DTR low-to-high
16 DS0 on power up, ATZ
32 Disable HST modulation
64 Disable MNP Level 3
128 Watchdog hardware reset
S15 Bitmapped register:
1 Disable high-frequency equalization
2 Disable online fallback
4 Force 300bps back channel
8 Set non-ARQ transmit buffer to 128 bytes
16 Disable MNP Level 4
32 Set Del as Backspace key
64 Unusual MNP incompatibility
128 Custom applications only

Bitmapped Register

1
2 Dial test
4 Test pattern
8 Initiate remote digital loopback
16 Reserved
32 Reserved
64 Reserved
128 Reserved
S18 &Tn Test timer, disabled when set to 0
S19 Set inactivity timer in minutes
S21 Length of Break, DCE to DTE, in 10ms units
S22 Define ASCII XON 17 17
S23 Define ASCII XOFF 19 19

Modem S-Register Functions and Defaults

S24
S25 Delay to DTR in 10ms units
S26 Duration (10ms units) of delay between RTS and CTS, synchronous mode
S27 Bitmapped register:
1 Enable V.21 modulation, 300bps
2 Enable unencoded V.32 modulation
4 Disable V.32 modulation
8 Disable 2100Hz answer tone
16 Disable MNP handshake
32 Disable V.42 Detect phase
64 Reserved
128 Unusual software incompatibility
S28 Duration (.1 sec units) of V.21/V.23 handshake delay
S32
0 Disabled
1 Go off hook in originate mode
2 Go off hook in answer mode
3 Redial last-dialed number
4 Dial number stored at position 0
5 Auto answer toggle On/Off
6 Reset modem
7 Initiate remote digital loopback
S34 Bitmapped register:
1 Disable V.32bis
2 Disable enhanced V.32 mode
4 Disable quick V.32 retrain
8 Enable V.23 modulation
16 Change MR LED to DSR
32 Enable MI/MIC
64 Reserved
128 Reserved
S38 Duration (sec) before disconnect when DTR drops during an ARQ call

ARQ = Automatic repeat request
ASCII = American Standard Code for Information Interchange
BPS = Bits per second
CCITT = Consultative Committee for International Telephone and Telegraph
CD = Carrier detect
CRC = Cyclic redundancy check
DCE = Data communications equipment
DTE = Data terminal equipment
EIA = Electronic Industries Association
HDLC = High-level data link control
HST = High-speed technology
Hz = Hertz
LAPM = Link access procedure for modems
MI/MIC = Mode indicate/Mode indicate common
MNP = Microcom networking protocol
NVRAM = Non-volatile memory
RAM = Random access memory
ROM = Read-only memory
SDLC = Synchronous Data Link Control
MR = Modem ready
LED = Light-emitting diode
DTR = Data terminal ready
CTS = Clear to send
RTS = Ready to send
DSR = Data set ready.
Voice/Data switch options: 1
Duration (20ms units) of pulsed DSR when modem is set to &S2 or &S3
Analog loopback
Number of rings before automatic answering when DIP switch 5 is UP. Default = 1. S0 = 0

Modem Control Codes

This section lists the command and control codes for popular modems. Most modems use a standard
AT command set that was developed by Hayes and augmented by U.S. Robotics. Table 27
comes in handy when you need to reconfigure a modem without the original manual. Even if
your modem is not Hayes or U.S. Robotics, it probably follows most of these commands because
this command set has become somewhat of a standard. S-register values listed at the end of the
table are also somewhat standard but are more subject to variation in the defaults by brand and
model.


Modem AT Commands and S-Register Features

Command Modem Functions and Options

&
% See Extended Command Set
A Force Answer mode when modem has not received an incoming call
A/ Reexecute last command once
A>
Any key Terminate current connection attempt; exit Repeat mode
AT Attention: must precede all other commands, except A/, A>, and +++
Bn Handshake options
B0 CCITT answer sequence
B1 Bell answer tone
Cn Transmitter On/Off
C0 Transmitter Off
C1 Transmitter On—Default
Dn Dial number n and go into originate mode
Use any of these options:
P Pulse dial—Default
T Touch-tone dial
, (Comma) Pause for two seconds
; Return to command state after dialing
“... Dial the letters that follow
! Flash switch-hook to transfer call
W Wait for second dial tone (if X3 or higher is set)
@ Wait for an answer (if X3 or higher is set)
R Reverse frequencies
S Dial stored number
DL Dial the last-dialed number
DSn Dial number stored in NVRAM at position
En Command mode local echo; not applicable after a connection has been made
E0 Echo Off
E1 Echo On
Fn Local echo On/Off when a connection has been made
F0 Echo On (Half duplex)
F1 Echo Off (Full duplex)—Default
Hn On/Off hook control
H0 Hang up (go on hook)—Default
H1 Go off hook
In Inquiry
I0 Return product code
I1 Return memory (ROM) checksum
I2 Run memory (RAM) test
I3 Return call duration/real time
I4 Return current modem settings
I5 Return NVRAM settings
I6 Return link diagnostics
I7 Return product configuration
Kn
K0 ATI3 displays call duration—Default
K1 ATI3 displays real time; set with ATI3=HH:MM:SSK1
Ln
L0 Low
L1 Low
L2 Medium
L3 High
Mn Monitor (speaker) control
M0 Speaker always Off
M1 Speaker On until carrier is established—Default
M2 Speaker always On
M3 Speaker On after last digit dialed, Off at carrier detect
O Return online after command execution
O0 Return online, normal
O1 Return online, retrain
P Pulse dial
Qn Result codes display
Q0 Result codes displayed
Q1 Result codes suppressed (quiet mode)
Q2 Quiet in answer mode only
Sr=n Set Register commands: r is any S-register; n must be a decimal number between 0 and
255.
Sr.b=n Set bit .b of register r to n (0/Off or 1/On)
Sr? Query register r
T Tone dial
Vn Verbal/Numeric result codes
V0 Numeric mode
V1 Verbal mode
Xn Result code options
Yn Long space disconnect
Y0 Disabled
Y1 Enabled; disconnects after 1 1/2-second break
Z Software reset
+++ Escape code sequence, preceded and followed by at least one second of no data
transmission
/(Slash) Pause for 125 msec
> Repeat command continuously or up to 10 dial attempts, Cancel by pressing
any key
$ Online Help—Basic command summary
&$ Online Help—Ampersand command summary
%$ Online Help—Percent command summary
D$ Online Help—Dial command summary
S$
<Ctrl>-S Stop/restart display of Help screens-C Cancel display Help screens
<Ctrl>
<Ctrl>-K Cancel display Help screens



Extended Command Set

&An
&A0 Suppress ARQ result codes
&A1 Display ARQ result codes—Default
&A2 Display HST and V.32 result codes
&A3 Display protocol result codes
&Bn Data Rate, terminal-to-modem (DTE/DCE)
&B0 DTE rate follows connection rate—Default
&B1 Fixed DTE rate
&B2 Fixed DTE rate in ARQ mode; variable DTE rate in non-ARQ mode
&Cn Carrier Detect (CD) operations
&C0 CD override
&C1 Normal CD operations
&Dn Data Terminal Ready (DTR) operations
&D0 DTR override
&D1 DTR Off; goes to command state
&D2 DTR Off; goes to command state and on hook
&D3 DTR Off; resets modem
&F Load factory settings into RAM
&Gn Guard tone
&G0 No guard tone; U.S., Canada—Default
&G1 Guard tone; some European countries
&G2 Guard tone; U.K., requires B0
&Hn Transmit Data flow control
&H0 Flow control disabled—Default
&H1 Hardware (CTS) flow control
&H2 Software (XON/XOFF) flow control
&H3 Hardware and software control
&In Received Data software flow control
&I0 Flow control disabled—Default
&I1 XON/XOFF to local modem and remote computer
&I2 XON/XOFF to local modem only
&I3 Host mode, Hewlett-Packard protocol
&I4 Terminal mode, Hewlett-Packard protocol
&I5 ARQ mode-same as &I2; non-ARQ mode; look for incoming XON/XOFF
&Jn Telephone jack selection
&J0 RJ-11/RJ-41S/RJ-45S
&J1 RJ-12/RJ-13
&Kn Data compression
&K0 Disabled
&K1 Auto enable/disable—Default
&K2
&K3 V.42bis only
&Ln
&L0 Normal phone line—Default
&L1 Leased line
&Mn Error Control/Synchronous Options
&M0 Normal mode, no error control
&M1 Sync mode
&M2 Sync mode 2—stored number dialing
&M3 Sync mode 3—manual dialing
&M4 Normal/ARQ mode—Normal if ARQ connection cannot be made—Default
&M5 ARQ mode—hang up if ARQ connection cannot be made
&Nn Data Rate, data link (DCE/DCE)
&N0 Normal link operations—Default
&N1 300bps
&N2 1,200bps
&N3 2,400bps
&N4 4,800bps
&N5 7,200bps
&N6 9,600bps
&N7 12Kbps
&N8 14.4Kbps
&Pn Pulse dial make/break ratio
&P0 North America—Default
&P1 British Commonwealth
&Rn
Normal/Leased line operation
Enabled
ARQ result codes 14–17, 19
Online Help—S-register summary
Loudness of speaker volume
Modem clock operation
Repeat last command continuously
See Extended Command Set