X.25 Tutorial
The following article was originally written and presented to Bell Operating
Companies as part of a tutorial and seminar for newcomers to packet network
operations.
THE ORIGINS OF PACKET TRANSMISSION AND SWITCHING
The concepts of packet transmission and switching appeared for the first time
in the United States in a series of studies of military communications networks by Paul Baran and his co-workers at the Rand Corporation, a governmentfunded "think tank" in 1964. At about the same time, several European organizations were studying and planning similar types of "distributed communications" systems.
The Rand Corporation's work was not aimed primarily at computer communication,
but led to the same kind of network design that later was proposed for packet
switching.
In England, Donald Davies and other workers at the highly-respected National
Physical Laboratory of Great Britain (NPL) proposed that a store-and-forward
system using short message units called "packets" would be best able to serve
interactive computers, because the computers naturally generated and received
short messages. The delays inherent in store-and-forward methods would be
reduced by restricting the length of the packets and using high-speed lines
between the switching systems. The practical outcome of the NPL work was a
local packet-switched communication network which grew in a number of years to
serve about 200 user terminals and give them access to about a dozen computer
services.
In October, 1975, a group of international network experts met in Canada, at
the Fourth Data Communications Symposium, a biennial meeting sponsored by the
ACM and IEEE. During this meeting, Donald Davies drew some ladder diagrams
which he described as the framework for the emerging public data networks.
The standard was being developed as a vehicle for the packet-switched nets
that would soon be available to users. One of the most prominent of these
packet nets was Telenet which had just become operational in the U.S.
The first operational packet network in the U.S. was ARPANET, designed to interconnect university computer centers and other centers where ARPA-funded
projects were in progress. (ARPA is is the Advanced Research Projects Agency
of the U.S. Department of Defense.)
THE ORIGINS AND NATURE OF X.25
CCITT Recommendation X.25 is one of the most frequently-referenced network
standards. The evolution of X.25 was accompanied by intensive political maneuvering. At the NPL, Davies had been explaining a layered architecture to
his colleagues. In effect, an interface was broken down into its component
parts, with each part called a layer. The layers describe a standard.
In Europe, parallel work by many organizations led to the realization that
standards had to be derived for international operations using packet transmission and switching. Packet networks had already begun operation in the
United States (Telenet), England, Canada (Infoswitch), Switzerland (Bernet),
and Germany.
The CCITT, (French abbreviation for "Comite Consultatif Internationale de
Telegraphie et Telephonie"), International Consultative Committee on Telephone
and Telegraph, an agency of the ITU (International Telecommunications Union),
charged with development of recommendations and standards, tasked Study Group
VII on Data Transmission, to draft a series of recommendations that would insure the uniform development of packet transmission and switching protocols
and methods. In 1976, the Plenary Session of the ITU unanimously approved
CCITT Recommendation X.25, titled "Interface Between Data Terminal Equipment
(DTE) and Data Circuit Terminating Equipment (DCE) for Terminals Operating in
the Packet Mode on Public Data Networks". Recommendation X.25 stated that
"the establishment in various countries of public data networks providing
packet-switched data transmission services creates a need to produce standards
to facilitate international interworking".
Recommendation X.25 was amended and expanded in 1980, and presently contains
99 single-spaced pages of detailed specifications. X.25 makes references to a
series of other Recommendations, including X.1, X.2, X.21, X.21 bis, X.92,
X.96 and a variety of other related standards. This Recommendation has been
accepted by nations signatory to the ITU treaties and conventions, and has
been adopted by the Bell Operating Companies (as Bell Standard BX.25).
The impact and importance of X.25 can be best understood when you consider
that the American Bell companies have rarely adopted an international standard
for use within the Bell System.
The communications common carriers are literally investing billions of dollars
in packet networks. For many of the carriers, packet technology opens the
door and points the way to the solution to one of today's most critical communications questions: how to move more information faster for more people.
What is packet switching? How does it work? What can it do? How can the
average customer use it? How does the public benefit from it? During the
next few hours, we'll to answer some of these questions by presenting an overview of the packet switching system, its origins, history and development,
applications, advantages and disadvantages, and probable impact on the future
of the telecommunications industry in general. But, for this look into the
world of packet switching, let's start with some clear definitions --
WHAT IS A PACKET
A packet is a group of binary digits (bits) including data and call control
signals which is transmitted and switched as a composite whole. The data,
call control signals and possibly error control information are arranged in a
specified format.
WHAT IS PACKET SWITCHING?
Packet switching is the transmission of data by means of addressed packets
whereby a transmission channel is occupied for the duration of transmission of
the packet only. The channel is then available for use by packets being
transferred between different data terminal equipment. The data may be formatted into a packet, or divided and then formatted into a number of packets
for transmission and multiplexing purposes.
WHAT IS A PACKET SWITCHING NETWORK?
A packet switching network is a network designed to carry data in the form of
packets. The packet and its format is internal to the network. The external
interfaces may handle data in different formats, and any required conversion
is done by some form of PAD, or Packet Assembler-Disassembler, a specialized
type of interface computer.
Packet transmission provides error-free transmission of any kind of data, regardless of the user's data code and speed, at the fastest possible network
speeds consistent with the available bearer circuits. Packet transmission
uses the ASCII code, and is capable of handling the entire code set of 128
characters, including control codes and the special symbols required by many
popular high-level computer programming languages. Packet systems operate
most efficiently on normal voice-quality telephone and radio bearer circuits.
BAUDOT (Baudot-Murray) CODE
The Baudot-Murray code dates from about 1874, when Emile Baudot, a Lieutenant
in the French Telegraph Service, developed the Baudot distributor for telegraphy, using five data bits to define each character, with a "start" bit and
a "stop" bit to identify the beginning and end of each character. With five
bit positions, the total number of possible combinations equals 25, or 32.
Donald Murray, a New Zealand farmer turned journalist, inventor of the Murray
Multiplex System, another five-unit code system, made a valuable contribution
to telegraphy by rationalizing the allocation of the combinations of the
five-unit code to the characters of the alphabet on the basis of frequency of
occurrence. His arrangement of the code, in which the most-frequently used
letters of the alphabet are represented by the smallest number of holes in the
tape, has since become 5-unit "Baudot" code in today's standard practice.
Our language has 26 letters (upper case only!), 10 numerical digits, and 9
common punctuation characters... a total of 45 alphanumeric characters. The
Baudot-Murray codes resolve this seeming paradox by the same stunt used on
your old-fashioned typewriter - shift to upper case and you now have the numerical digits, the punctuations, and a bunch of other useful things like parentheses, dollar sign, number sign, "at" sign, asterisk, percent sign, ampersand, underscore... you end up with a total of 64 possibilities. That's fine if you never send anything but business letters or need to talk to computers!
Unfortunately, different versions of the same Baudot-Murray code evolved over
the years, with resultant confusion in international traffic. Western Union,
Bell, the Weather Bureau, the Armed Forces, the F.A.A., the Associated Press,
all had their own versions of the code. You can understand how tacky it became when subscribers couldn't get together on the same keyboard configurations.
The International Telex Network used yet another version of the Baudot-Murray
code called International Telegraph Alphabet Number 2.
Although still the most widely-used code in the world (the International Telex
Network is still the largest of all record communications networks), the old
Baudot-Murray code has two serious drawbacks - there is no parity or inherent
method of validating transmission integrity, which means that a machine has no
way of telling if an error has occurred - and the fact that the code is a sequential one, meaning that a particular control character defines the following series of characters for a period of time until a new control character is
recognized.
The two control characters which identify the functional configurations in
Baudot are "LETTERS" and "FIGURES". Those of you who operated in the days of
electromechanical teleprinters and Teletype machines know what happened when
the data was kicked into upper case by a noise hit, and how frustrating it was
to have lines of unintelligible stuff.
DATA CODES
Baudot-Murray code was fine stuff back in the days when the game was communication between humans. But as technology developed and machines had to start
communicating with other machines without involving humans, better and more
efficient codes had to be developed for transmitting information, so that the
machines themselves could evaluate the received information and request repeats as needed in the event of errors being received.
As data processing first evolved and data communication codes were developing,
the data processing systems used their own codes, one of the first of these
being "BCD", Binary Coded Decimal. BCD was used for internal calculations
inside a data processing device. BCD has no alpha characters, only numbers,
and thus was unsuitable as a communications code for use by humans.
BCDIC
Binary Coded Decimal Interchange Code was developed when the data processing
systems had to communicate with humans in printed characters on a printing
device. This code was fine for communication with humans, but was unsuitable
for machine-to-machine communications because it lacked any form of parity or
error-checking capabilities. So, BCDIC had the same problem as did Baudot - a
machine couldn't tell when an error occurred in transmission.
EBCD
Extended Binary-Coded Decimal solved the parity problem when it was developed
for the IBM Selectric typewriters. The Selectric principle allowed the typing
and printing of hard copy while at the same time, generating a unique code
suitable for transmission over a communications facility. Also known in the
field as PTTC (Paper Tape Transmission Code), this code used six information
bits and a parity bit which permitted the receiving system to determine if an
error had occurred in a specific character. But, Extended BCD is a sequential
code with upper case and lower case characters. So, while parity could detect
errors and provoke repeats, the sequential nature of the code made its
efficiency less than desirable.
EBCDIC
Extended Binary-Coded Decimal Interchange Code was developed in 1962 and, with
its 8 bits, was capable of transmitting 256 characters. But for communications, EBCDIC might be deemed a backward step, because it had no parity capability. Some users who don't need all 256 characters have redefined the code
using EBCDIC as a base and identifying particular characters with odd or even
parity bits. Although there are occasional compatibility problems because of
parity definitions varying between users, EBCDIC is still widely used in data
processing communications systems.
ASCII
Contrary to propaganda from the computer enthusiasts, ASCII is an extension of
the eight-bit code developed decades ago and used for years in the Bell System
TWX network. ASCII was published as a standard by ANSI, the American National
Standards Institute around 1963, in order to achieve some degree of compatibility for the newborn data communications field. ASCII is also known as International Telegraph Alphabet Number 5, and is standardized for international
traffic at various data rates.
ASCII uses seven bits to define each character. That give us a maximum of 27,
or 128 possible combinations. We now have the ability to transmit upper case
and lower case letters, all punctuations, 10 digits, and a variety of control
codes such as "start of text", "end of text", "horizontal tab", "vertical
tab", "form feed", "backspace", and many other control functions previously
unavailable to us in Baudot.
ASCII is frequently (and erroneously) thought of as an eight-bit code; the
eighth bit is reserved for a parity function, a form of error detection. Many
ASCII systems do not require the eighth bit for parity and operate well without it.
OTHER CODES
Several other data codes are in use today, some of them dating back decades.
Hollerith Code, developed more that 80 years ago, is still used commercially
and is generally associated with punched-card systems. There are others such
as Jaquard Code, Moore ARQ code, Syntoc code, AP code, and others too numerous
to list here.
One of the main features of packet switching is that the packet network concept is really transparent to the user - the network doesn't care what code or
data speed the user's terminal is sending to the network! The relationship
between the PAD (Packet Assembler-Disassembler, the box that makes the packets
out of what the user sends from his or her terminal) and the keyboard-terminal-computer system is flexible and can meet almost any user's need, now and in
the future!
ASYNCHRONOUS VERSUS SYNCHRONOUS TRANSMISSION
Since the beginning of electromechanical telegraphy and teleprinting, the
problem of maintaining the proper timing relationship between the sender and
the receiver has been resolved by mechanical synchronization methods. These
were based on the basic ideas of "start-stop" telegraphy.
The original Baudot rotary distributor permitted the sending distributor to
tell the receiving distributor when the rotary contact was at a reference
point in the rotation of the motor shaft. The distributor created a start and
stop pulse at the beginning and end of each character. In teleprinter operation, each character has carried its own sync information in the form of the
traditional "start" element at the beginning of each character, and the "stop"
bit at the end of the character.
In some systems, the "stop" element is one, one-and-one-half, or two bits.
The result is reduced efficiency - each character will have a fixed amount of
"overhead". These housekeeping bits carry no user information. They exist
only to keep the sending and receiving machines in sync. This reduced efficiency has kept a lid on higher data rates and has been a block in the constant search for faster ways of sending more information for more people.
As data processing requirements became more demanding, newer forms of synchronization evolved. A method was developed which applied a single synchronizing string to an entire string of characters, rather than include sync information in each character. The "overhead", or housekeeping bits previously inserted into each character for sync purposes were eliminated; higher data rates became practical, without sacrificing data integrity. This newer method, called "synchronous" transmission, is used in higher-speed and specialized orms of transmission. Even though the user's terminal keyboard sends asyn chronous data to the PAD (Packet Assembler-Disassembler), with start and stop bits in each character, PADs strip the start and stop bits from the characters.
WHAT IS A PACKET FRAME?
A packet frame is like an envelope into which several different kinds of data
are placed. In addition to the data typed at the user's terminal keyboard,
the envelope contains synchronizing information, address information, error-detection information and control information. A packet can also be described
as a sequence of ASCII data bytes (eight-bit binary groups), formatted in a
special manner, strung together and transmitted as a single chunk of information from one end of a network to another, from one user to another user, or
to some kind of host computer or device. If the user's message or data file
is too long to fit into a single packet, the message or file can be cut up
automatically by the PAD (Packet Assembler-Disassembler), divided into several
packets and transmitted sequentially.
Each user must be equipped with a device that assembles his terminal's output
data into packets for outbound transmission, and disassembles the inbound data
from packets into data suitable for display on the user's terminal.
WHAT'S IN A PACKET FRAME?
A packet frame is a digital information sequence composed of different data
groups called "fields". Each data group, or field, represents a different
kind of information and is used for a different purpose. A typical packet
frame will include the following fields:
THE FLAG
A field containing a single "byte", or digital character, made up of a special
sequence of bits (binary digits) - 01111110. This exact sequence of bits, a
unique combination that will not be duplicated in normal text and data files,
is always used by every PAD (Packet Assembler-Disassembler).
The FLAG is the first field in the packet and provides synchronizing information to the distant system, telling the other system where the packet frame
begins and ends, and providing a reference "clock" for synchronization of the
systems in the packet network. The FLAG field is also transmitted a second
time as the very last field in the packet to identify the end of the packet
frame.
THE ADDRESS FIELD
A single field containing several bytes of addressing information for the destination of the packet, and in some cases, the address of the originating terminal user. In the X.25 packet, the address used is in accordance with the
International Numbering Plan contained in CCITT Recommendation X.121.
THE CONTROL FIELD
A single field containing several bytes of information about the nature of the
packet, the type of frame, acknowledgement of a good packet, rejection of a
bad packet, the number of the packet in a sequence of transmitted packets, and
other protocol-oriented functions needed to control the flow of packets from
user terminal to user terminal or host device, and through a packet network.
THE DATA FIELD
This field normally contains user data, the information originated by the user
typing at the terminal's keyboard. Under the present standards, the user data
field can contain up to 128 bytes or message characters. If the user types
less than 128 characters before a "carriage return" or "enter" keystroke, the
data field will contain those characters typed up to the "return" or "enter".
The "return" or "enter" keystroke normally is the command to the PAD (Packet
Assembler-Disassembler) to format the packet, and send the packet. If the
user types more than 128 characters without a "return", the system will end
the data field and transmit the packet. The remaining characters typed by the
user will be automatically carried over and sent in a subsequent packet. In
some types of packets used in link control, the data field may be empty, or
non-existent.
THE FRAME CHECK SEQUENCE
This field contains several bytes forming a specially-calculated digital word,
and is developed automatically by the PAD (Packet Assembler-Disassembler) for
transmission to the distant terminal or host device. This field is used by
the distant PAD (Packet Assembler-Disassembler) as a means of error detection.
The receiving PAD (Packet Assembler-Disassembler) examines and calculates the
frame check sequence from the data in the incoming packet, and compares the
result with the value calculated and sent by the originating PAD (Packet Assembler-Disassembler). If the two values fail to match, the receiving PAD
(Packet Assembler-Disassembler) throws the received packet away and requests
repetition of the packet from the originating terminal.
THE FLAG
This field contains a single byte, and is a repetition of the FLAG field sent
at the start of the packet, and contains "01111110", the same synchronization
byte. The FLAG closes the packet.
All of these packet fields are generated automatically by the PAD (Packet Assembler-Disassembler). All the user has to do is relax and type the message
or send the data file.
THE TELEPHONE ANALOG OF THE DIGITAL PACKET
Perhaps the easiest way to conceive the manner in which packet switching works
is to make a direct comparison, in hypothetical terms, to an ordinary telephone call.
The following example will help you to understand the concepts of communications protocols, network access, and control procedures. The term "communications protocol" defines a set of procedures by which communication is accomplished within standard restrictions.
In the general packet switching case, we have an operator's terminal and a PAD
(Packet Assembler-Disassembler) and a modem. These pieces of equipment form
the basic package at each end of the communications link. The communications
link is really divided into two different functions: the "circuit connection"
and the "link connection". A "circuit connection" is simply an electrical
path created between two or more points that wish to communicate. The connection can be metallic (wires or cables), and/or radio. The fact that we create an "electrical" path or connection does not necessarily mean that communication can occur. A "link connection" is created by a group of procedures that
prepare the originating terminal to transmit information, and the receiving
terminal to receive that information.
As you all know, an ordinary telephone call has three separate parts:
- the call setup, during which the connection is requested and established;
- the transfer of information, during which the calling party
and the called party hold their conversation;
- call termination, during which the parties to the call disconnect from
each other.
In his excellent book, "Telecommunication System Engineering", Roger Freeman
sets up a clever comparison between a routine telephone call and an analogous
data communication:
1. CALLING PARTY (C): "Hello."
2. ANSWERING PARTY (A): "Hello."
3. C: "Good morning. may I speak to Paul Jones?"
4. A: "Just a moment, I'll see if he is in; who may I say is calling?"
5. C: "John Doe."
6. A: "Just a moment, please."
7. A: "Good morning, John."
8. C: "Good morning, Paul. If you can spare a minute, perhaps we can
settle the matter on....."
9.........(talking)
10........(talking)
11. C: "Then that's settled, and I'll confirm by letter."
12. A: "Thank you, John; I appreciate the call, and we will be talking again
soon."
13. C: "Goodbye."
14. A: "So long for now" (conversation terminated) (Both parties hang up;
connection terminated)
Freeman notes that steps 1 through 8 initiate the conversation; the calling
and called parties are identified. On data and packet networks, this is called "handshaking".
Step 8 is the start of text, and step 11 is the end of text.
Step 12 may be considered the positive acknowledgement (ACK), and steps 13
through 15 are analogous to the end of message (EOM).
SEVEN LEVELS OF CONTROL
In its present form, X.25 can still be explained with a ladder diagram, with
its various layers described as follows:
Level 1: This layer is known as the physical layer, and specifies the mechanical, electrical, and functional characteristics of a physical circuit or link between a terminal and its associated data communications set or external CPU. Level 1 includes pin numbers for connectors that match cables between communications devices. The pin arrangements are based on RS-232-C,
plus the lesser-known RS-422/423, both of which were developed by the U.S.
Electronic Industries Association (EIA). Also included are parts of the X.21
interface approved by the CCITT.
Level 2: This is called the link layer. Once the connection defined in Level
1 is made, the link level or layer adds addresses and other control and protocol information to outgoing messages and decodes them from incoming messages. This layer provides error detection and correction, and controls the flow of data across the physical level. Examples of link level protocols are High-Level Data Link Control (HDLC) developed by the International Standards
Organization (ISO), and Synchronous Data Link Control (SDLC), part of IBM's
Systems Network Architecture.
Level 3: This layer handles network control. Level 3 specifies network
addressing and routing, controls errors, accounts for services rendered
(billing data), and provides for packet assembly. X.25 is currently
implemented in only three levels.
Level 4: This layer is the transport layer which allows various computer
systems to connect routinely with various networks. This layer must provide
for the reliable transfer of data between end points across a communications
network.
Level 5: This layer is the boundary between network functions and application
functions. This is the session layer. A session is an interchange of data
over an established network link between two communicating systems or business
machines. Session control provides for the structured exchange of message
between two workstations or devices on a network.
Level 6: This is the presentation layer, designed to translate various
languages, data formats, and codes, and generally handles the transformation
between terminal formats.
Level 7: This is the application layer- the payoff, where the computerized
processes generate or receive and interpret the messages handled by the other
six layers.
While this is only an overview, it's obvious why some users might be a bit
skeptical when a vendor or carrier claims that a device or network is X.25
compatible. There are now three levels to which such a claim might apply.
THE 7-LEVEL STRUCTURE FOR USER-TO-USER COMMUNICATIONS OVER A SWITCHED NETWORK
LEVEL FUNCTION EXAMPLES RESPONSIBILITY
1 Physical Control X.25 Level 1 CCITT
2 Link Control X.25 Level 2 CCITT
3 Network Control X.25 Level 3 CCITT**
4 Transport Network-Independent ISO
End-To-End Interface
5 Session Control Session Management ISO
6 Presentation Control Data Structure Formats ISO
Virtual Terminal Protocol
File Transfer Protocol
7 Application Database ISO*
Time-sharing
Electronic Funds Transfer
Order Entry
* ISO - International Standards Organization - for private nets.
** CCITT - French abbreviation for International Consultative Committee on Telephone and Telegraph, an agency of the International Telecommunications Union, whose recommendations are generally considered mandatory for international working across national boundaries and between international communications common carriers.
Note: Higher Level Protocols generally span Levels 4-7; Standard Transport
Service generally Levels 1-4.
AN ANALOGY WITH A POSTAL SYSTEM
A postal system is a network. They're just not electronic (yet). We can make
an analogy between a postal system and the ISO networking levels.
Each operating level has an associated control function and a protocol to
execute that function.
In Level 1, the physical layer, the control function would consists merely of
having mailboxes and post offices (made of metal, brick, etc.). Protocols
would relate to sizes, colors, etc.
In Level 2, the link layer, the function would be the act of putting letters
in the mailbox, the protocol related to different slots for flats, letters,
packages, etc.
In Level 3, the network layer, letters get collected, put into mail-bags, etc.
All according to a standard procedure (protocol), with mail-bags looking pretty
much the same.
In Level 4, the transport layer, the post office takes charge and schedules
the sending of mail batches by plane, boat, or carrier. The protocols are all
internal to the post office, but uniformity exists across the various postal
regions. Internal rules include provisions for alternate routing if a distribution center (node) goes down.
In Level 5, the session layer, (and here the analogy strains a bit), the use
of special codes on the information (air mail, special handling) determines
the logical channel by which the letter or parcel goes.
In Level 6, the presentation layer, the function could be the use of a letter,
of certain paper, texture, color and so on. The use of standard formats for
addressing, e.g., in business letters, aids the function.
In Level 7, the process layer, we reach the application - the text. And even
here are protocols such as standard headings, salutations and closings.
|