WO1988004511A1 - Input/output network for computer system - Google Patents

Input/output network for computer system Download PDF

Info

Publication number
WO1988004511A1
WO1988004511A1 PCT/US1987/002388 US8702388W WO8804511A1 WO 1988004511 A1 WO1988004511 A1 WO 1988004511A1 US 8702388 W US8702388 W US 8702388W WO 8804511 A1 WO8804511 A1 WO 8804511A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
session
control
data
node
Prior art date
Application number
PCT/US1987/002388
Other languages
French (fr)
Inventor
Michael A. Fischer
Original Assignee
Datapoint Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Datapoint Corporation filed Critical Datapoint Corporation
Priority to DE87906702T priority Critical patent/DE3788355T2/en
Priority to AT87906702T priority patent/ATE98079T1/en
Priority to JP62506109A priority patent/JPH0783365B2/en
Publication of WO1988004511A1 publication Critical patent/WO1988004511A1/en
Priority to DK444988A priority patent/DK444988A/en
Priority to NO883578A priority patent/NO174910C/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/128Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/327Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the session layer [OSI layer 5]

Definitions

  • This invention relates to improving the input/output (I/O) of a computer system, and is particularly useful for economically connecting to the computer system a rel- atively large number of low or medium speed I/O devices or peripherals of mixed types over a relatively large geographic area to achieve efficient time sharing of the computer system resources and effective communication between the I/O devices and the computer system.
  • I/O input/output
  • I/O channel control ⁇ lers have been devised to avoid restricting the pro ⁇ cessing speed available from modern central processors and to attempt to accommodate increasing numbers of I/O devices.
  • I/O channel controllers are usually of either a bulk storage type or a character type.
  • a bulk storage I/O channel controller is used for controlling high speed transfers of relatively large amounts of data from one or more external bulk storage devices, such as disk drives, over the bus of the computer system to the system main memory.
  • the most common version of a character I/O channel controller uses its own relatively complex processor to multiplex data to and from a fixed number (e.g. 8, 16 or 32) of I/O devices connected to it.
  • the character chan ⁇ nel controller's I/O ports may be limited to a specific type of device for strictly local connection. If the character channel controller is not device specific, a similarly complex I/O adapter is required to communicate between the I/O channel controller and each device or group of devices.
  • the operating functions of the I/O channel controller, the I/O adapter, the host computer, and the I/O devices are shared between all of these com ⁇ ponents.
  • the communication and control protocol used to accomplish such communication is usually complex, requires substantial overhead in the operating system, generally complicates the transfer of I/O data, and usually limits the data throughput.
  • the majority of the cost incurred in connecting devices to the computer systems is created as a result of the relatively complex operating nature of the I/O pro ⁇ cessors in the channel controllers and adapters and the protocol which is required. In order to defray some of this relatively high cost, it is typical to provide a multiplicity of ports at each I/O adapter for the purpose of connecting a multiplicity of I/O devices.
  • the I/O devices must usually be located in close physical proxim- ity to the I/O adapter because cable lengths can restrict the speed at which reliable data transfers can be accomplished.
  • connection costs which are not necessarily related to the addition of each new I/O device on the system, because the addition of each new multiport adapter involves paying for the capability of connecting a multi ⁇ plicity of I/O devices, whether or not all of these con- nection ports are utilized. In some situations, the cost of connecting an I/O device to the system may exceed the cost of the I/O device itself.
  • the type of multiplexing used in character I/O chan ⁇ nel controllers and adapters may also create limitations.
  • One type of multiplexing is known as centralized polling. With centralized polling, the central processor sends signals which interrogate each I/O device in order and regardless of whether or not it has data to send.
  • Another form of polling known as induced polling or polling on demand, initiates this type of centralized polling only when an adapter sends a change of status signal. Induced polling avoids the processing burden or overhead of continuously polling all of the adapters and I/O devices, but requires all of the adapters to be polled in order once during any polling sequence.
  • Poll ⁇ ing requires considerable software functionality at either the central processor or channel controller, and wastes time in polling both the active and inactive I/O devices, and in interpreting the results of the polling.
  • Another type of multiplexing is generally referred to as access on demand.
  • Access on demand multiplexing usually involves a request from an adapter for access to the communication link and some form of arbitration for resolving competing requests from different adapters.
  • Signal propagation delays in arbitration systems can create significant adverse influences. Because signal propagation delays increase with greater physical cable lengths, arbitration techniques utilizing the central processor or system bus controller to resolve competing requests, known as centralized arbitration schemes, are usually limited to computer busses and other applications vhere the distances between the I/O adapters generating the requests and the arbitration logic extend no more than a few feet.
  • Token passing is a technique of distributed control or arbitration which has been used with success in local area networks (LAN),
  • LAN local area networks
  • the present invention is designated as an I/O network (IONET) channel for a computer system.
  • the IONET-channel is for means of highly effective character and other communication between a plurality of low and medium speed devices of the same or mixed types connected directly to the I/O subsystem of a computer system, by using arbitration over LAN-type communication medium, relatively low cost point of use adapters with microcomputers distributed over the medium and connected to each I/O device individually or to a relatively small number of I/O devices, and a communication and control protocol which efficiently controls the microcomputers and to control communication of the data between the I/O devices and the computer system memory.
  • the LAN-type communication medium, the protocol and the distributed low cost point of use adapters cooperatively function as an improved I/O channel controller, but without the sig- nificant limitations previously discussed.
  • the I/O devices can be attached at substantially greater distances from the central processor than for typical I/O channels because the arbitration control per ⁇ mits such connections without the attendant reduction in data throughput, and because LAN technology provides reliable data communication at longer distances than other schemes compatible with low cost cables.
  • the com ⁇ munication and control protocol is relatively simple, does not require substantial overhead, and is conducive to efficient data throughput.
  • the point of use adapters are relatively simply implemented and respond directly and effectively to the commands of the protocol to con ⁇ trol data transfers.
  • the user incurs relatively low, fixed per-connection connection costs to attach each new I/O device to the system, thereby avoiding the large costs of single expensive shared logic multiplexing adapters and the physical placement restrictions associ ⁇ ated with connecting the I/O devices to such shared logic multiplexing adapters.
  • the I/O devices can be positioned at widely distributed locations.
  • the data throughput capabilities do not require real time sharing of the much faster central processor, despite the fact that communi ⁇ cation is occurring with considerably slower I/O devices.
  • the user of each I/O device has access to the resources of a complete computer system without placing a complete computer system at each I/O device or terminal.
  • the protocol of the present invention achieves sig ⁇ nificant conservation of network bandwidth because it in ⁇ corporates transport level flow control. Packets of data are not attempted to be sent until it is established that the packets can be received.
  • the protocol is generally immune from the loss or duplication of any one packet at any time. If a packet is duplicated or omitted the sys ⁇ tem will inherently recover at the transport level. Data messages can be forwarded between separate network seg- ments.
  • the invention can also provide the appearance of a privately connected local device even in a multiprocessor environment, which is very useful for security considerations and restricting access to infor ⁇ mation. A significant part of the multiplexing function and the network control function has been moved into the protocol.
  • FIG. 1 is a generalized block diagram of a typical prior art computer system to which a bulk storage I/O channel, a character I/O channel and a local area network are connected.
  • Fig. 2 is a generalized block diagram of a computer system utilizing the IONET channel of the present inven ⁇ tion.
  • Fig. 3 is a block diagram illustrating the connec ⁇ tion of a plurality of I/O devices by a plurality of IONET channels . to a single computer system.
  • Fig. 4 is a block diagram illustrating the connec ⁇ tion of a plurality of computer systems by one IONET channel to a plurality of I/O devices.
  • Fig. 5 is a block diagram illustrating a plurality of computer systems interconnected by an LAN and with each computer system having an IONET channel connecting a plurality of I/O devices to each computer system.
  • Fig. 6 is a block diagram of a point of use (POU) adapter of the IONET channel interconnecting an I/O device to a cable of the IONET channel.
  • Fig. 7 is a block diagram of a computer system con ⁇ nected to the cable of the IONET channel.
  • POU point of use
  • Fig. 8 is a block diagram of an exemplary POU adapter using an RS 232 serial device interface.
  • Fig. 9 is an illustration of the seven layer Open System Interface (OSI) architecture of the International Standards Organization reference model for communication.
  • OSI Open System Interface
  • Fig. 10 is an illustration of an IONET packet of information communicated over the IONET channel r shown in sequential byte form.
  • Fig. 11 is an illustration of the IONET packet shown in Fig. 10 which is broken down into the hierarchical levels corresponding to the physical, link, network, transport and session levels of the OSI model.
  • Fig. 12 is a chart which illustrates in greater detail the bit layout and other details of some of the individual bytes of the IONET packet shown in Fig. 10.
  • Fig. 13 is an illustration of a generalized state transition diagram for a transmitter state machine of the POU adapter of the present invention.
  • Fig. 14 is an illustration of a generalized state transition diagram for a receiver state machine of the POU adapter of the present invention.
  • Fig. 15 is a chart which characterizes the operation of the transmitter state machine in a normal mode.
  • Fig. 16 is a chart which characterizes the operation of the transmitter state machine in an immediate mode.
  • Fig. 17 is a chart which characterizes the operation of a receiver state machine in the normal mode.
  • Fig. 18 is a chart which characterizes the operation of a receiver state machine in the immediate mode. Detailed Description
  • the present invention can be better understood by reference to a typical prior art computer system 100 which is illustrated in Fig. 1.
  • the computer system 100 includes the typical processor 102 which is connected to and communicates with the typical system main memory com ⁇ ponents 104.
  • a typical I/O subsystem 106 is provided for communicating data to and from the main memory 104.
  • the processor 102, the main memory 104 and the I/O subsystem 106 are all capable of communicating with each other at the high internal capacities or bandwidths that typify a modern computer system.
  • the I/O subsystem 106 will have one or more external interconnections for external peripherals. These exter ⁇ nal connections are typically called I/O channels. In most modern computer systems two types of I/O channels are employed. One type of I/O channel is a bulk storage I/O channel 108.
  • the bulk storage I/O channel 108 is typified by supporting the high bandwidth transfers typi ⁇ cal of disk 110 and tape 112 storage devices.
  • a bulk storage I/O channel 108 is typically limited in length to a tens of feet.
  • a bulk storage channel 108 is able to perform data transfer to and from only one I/O device at a time, although some bulk storage I/O channels are capa ⁇ ble of handling overlapping operations where different devices are accessing data simultaneously but only one is only physically transferring data at a time *
  • a bulk storage channel is ncrt optimally suited for handling lower speed or less continuous duty cycle data transfers between system memory and I/O peripherals because of, among other things, relatively expensive cabling requirements, relatively extensive interface cir ⁇ cuitry, physical distance restrictions, and the optimization of the bulk storage I/O channel 108 for transfers of relatively large blocks of data with each transfer.
  • character I/O channel 114 To accommodate a relatively large number of individ ⁇ ual transfers of relatively short amounts of data, most computer systems also incorporate a character I/O channel 114.
  • character describes its most predominant use, transferring data entities representating alphanumeric and special characters to and from external peripherals. However, the term “character” is in no way indicative of a restriction that only characters may be transferred. Graphics data, arbitrary binary data and other encodings of information may be transferred over the character I/O channel 114.
  • the character I/O channel 114 is typified by a parallel or serial data bit trans ⁇ mission occurring at a speed generally lo r - ⁇ er than that of the bulk storage I/O channel 108, but at a speed faster than any of the individual peripherals attached to the character I/O channel 114.
  • the character I/O channel 114 is optimized for short transfers to a relatively large number of peripherals rather than long transfers to a small number of peripherals.
  • connection arrangement to connect an I/O device is one or more multiport interface or adapter 116 attached to the channel 114.
  • the adapter 116 will be a part of the overall computer system 100.
  • a number of low speed serial or parallel communication interfaces 118 exit the enclosure for the computer system 100 and elec- trically connect to and communicate with peripherals such as terminals 120, printers 122 and modems 124, for example.
  • the interfaces 118 are typically low speed com ⁇ munication cables which tend to be severely limited in length unless modems are used, are limited in speed nor- mally to a few tens of kilobits per second at most, and limit the computer system capacity because each one of the cables 118 takes a noticeable amount of space on the back panel of the computer system 100 enclosure. Often, the number of external cables 118 which a modern computer system can support is more constrained by the amount of back panel space rather than the actual available I/O bandwidth of the computer system.
  • the multiport adapter 116 It is also typical practice to directly connect the multiport adapter 116 to the I/O character channel 114 within or immediately adjacent to the computer system enclosure. However, such direct connection is limited to a relatively short distance, thereby placing the multiport adapter 116 at a distance not significantly removed from the location of the computer system itself. In most large scale computer systems, the multiport adapter 116 actually includes a dedicated processor, often referred to as a front end processor, to actually control the communication and multiplexing between the various peripherals and the computer system 100. The functionality of the adapter 116 tends to be rather com ⁇ plex, thereby requiring a relatively complex and expensive processor of its own to prevent the processing requirements for the control of low speed I/O devices from placing an excessive load on the control processor 102.
  • the communication and control protocol between the I/O subsystem 106 and the multiport adapter 116 tends to be complex and to require considerable internal communication overhead to and from system memory 104, in order to accomplish the multiplexing between the peripherals.
  • the expense of the shared logic and relatively com ⁇ plex hardware required to be incorporated in each of the multiport adapters 116 has required that they have the ability to connect to a plurality of peripherals, typi ⁇ cally at least 4, usually 8 or 16, and sometimes 32 peripherals. Cost effectiveness is thereby gained, pro ⁇ vided that there are actually a large number of periph ⁇ erals to be connected to each adapter 116.
  • I/O channel controllers Devices having essentially the same general func- tionality as the multiport adapters 116 described above are sometimes referred to as I/O channel controllers.
  • a local area network desig ⁇ nated 126
  • a LAN adapter 125 is used between the LAN medium 128 and the I/O subsystem 106. This LAN adapter most frequently attaches to the character I/O channel 114.
  • a LAN 126 typically includes a network communica ⁇ tion medium or cable 128 to which a plurality of computer systems are connected for the purpose of sharing informa ⁇ tion. Each of the computer systems is connected to the LAN cable 128 at a tap or drop 130. Each system con ⁇ nected to the LAN cable 128 at a tap 130 is referred to as a Node.
  • a variety of different conventional configu ⁇ rations of LANs are available, such as token rings, token busses, contention arbitrated busses and the like.
  • the most significant differences between various conventional LANs is based on the sophistication of the networking software, thereby providing different degrees of resource sharing and functionality.
  • the network cable 128 can extend relatively long distances from the host or main computer system 100 to other Nodes. Some of these Nodes are other general pur ⁇ pose computer systems 100'. Some Nodes of the LAN may be special purpose devices known as front end processors 132. Front end processors are sometimes called cluster servers. The front end processors 132 do not provide general computing services, but serve as transparent interface elements to permit the attachment of terminals 134 or other non-computer I/O devices. Although con ⁇ nected by the LAN 126 to the I/O subsystem 106 through a LAN adapter 125, the disadvantages discussed in conjunction with the multiport adapter 116, which relate to the complex processing functionality, cumbersome over ⁇ head, and shared logic for multiplexing, generally applies to each of the cluster servers 132 as well.
  • each cluster server 132 Cer- tainly the cost effectiveness of each cluster server 132 is dependent upon connecting a relatively large number of I/O devices 134 to it at relatively short distances.
  • the incremental cost for attaching additional terminals to the LAN is usually magnified, however, because typically not all of the terminals can be located physically close to the cluster server.
  • more cluster servers or other front end processors must be used than are actually needed just to accommodate the physical spacing of the I/O devices. This requirement contributes significantly to the cost of adding additional I/O devices.
  • An input/output network (IONET) channel 140 is provided for connecting the computer system 100 to a plurality of I/O devices, for example, terminals 142, printers 144, personal"computers 146, miscellaneous data collection equipment 148, modems 150, and statistical multiplexers 152.
  • the modem 150 communicates over telephone lines 154 with a remote computer system 156, for example.
  • the sta- tistical multiplexer 152 communicates over telephone lines 158 to a physically similar remote unit 160.
  • a plurality of remote terminals 162 are connected to the remote statistical multiplexer 160.
  • the statistical mul ⁇ tiplexers 152 and 160 reduce telephone line costs by combining the aggregate input/output going to and from the several, co-located remote terminals 162 on a single telephone line 158.
  • an "I/O device” is a peripheral which cannot operate autonomously and requires some type of interface adapter to attach to a computer system, and is to be distinguished from a "Device” which does contain its own processor as is defined in greater detail below.
  • An I/O device performs I/O information transfers.
  • the IONET channel 140 combines certain features of a token passing LAN and the character I/O channel to achieve significant improvements in attaching a rela ⁇ tively large number of low and medium speed I/O devices to the computer system while avoiding many of the signif ⁇ icant limitations present in the prior art.
  • the IONET channel 140 is primarily a character channel, arbi ⁇ trary byte streams may be transferred over this channel and its use is not restricted to character transfer situ ⁇ ations.
  • the IONET channel 140 comprises a communication medium or cable 170, a plurality of point of use (POU) adapters 172 connected to the cable 170, and means for connecting the computer system 100 is at a node 174.
  • the term "node” refers to the electrical connection to the cable, and is to be distinguished from the term “Node” which generally refers to all the equipment connected at a node, as is defined in more detail below.
  • the IONET channel 140 can become the interface means by which the computer 100 is connected to the various I/O devices.
  • An I/O device is intended to encompass all the variety of different types of non-processor, non-bulk storage peripherals which might be attached to the IONET channel, such as the terminals 142, printers 144, personal com ⁇ puters 146, data collection equipment 148, modems 150, statistical multiplexers 152, and the like.
  • the computer system 100 is simplified because it does not require separate LAN, multiport adapter, and miscellaneous other capabilities in its own character I/O channel interface repertoire. Furthermore, the computer system does not require the functionality of a network Node in the LAN protocol in order to communicate with peripheral devices, thereby allowing the computer system to avoid having to support a LAN protocol unless LAN com ⁇ munication with other computer systems is necessary.
  • a protocol suitable for use in conjunction with the IONET channel 140 is primarily for I/O device interfacing, and is not for resource sharing or remote operating system functions. As a result, the IONET protocol is relatively simply implemented at each of the remote I/O devices by the POU adapters 172.
  • the POU adapters 172 need not be physically located in relatively close proximity to the computer system 100 but rather, may be removed to considerable distances.
  • the I/O devices can be located as much as 22,000 feet from the computer system 100.
  • the data going to and from the I/O devices is multiplexed on the single serial cable 170.
  • the POU adapters 172 are located within or adjacent to the I/O devices to which they attach. Examples of POU adapters 172 located within or embedded within the I/O devices are illustrated by the personal computers 146, wherein the POU adapters 172 are illustrated as enclosed within the same housing as the personal computers 146.
  • a multiplicity of IONET channels 140a and 140b can be connected to the same computer system as is shown in Fig. 3.
  • Fig. 3 illustrates the manner in which this approach can extend to support large numbers of I/O devices without a corre ⁇ spondingly large increase in the number of cables entering and leaving the computer system 100 enclosure *
  • Each of the IONET channels 140a and 140b utilize a single conductor 170a and 170b respectively, and each of the IONET channels makes a single interface with the I/O subsystem of the computer system 100.
  • I/O channels whether of the bulk storage or character oriented type, are limited to being attached to a single computer system, in order to provide the conduit for transferring information between the computer system and a plurality of external peripherals. Because of the nature of the present invention, it is possible to attach a plurality of computer systems 100a and 100b to a plu- rality of I/O devices 176 by a single shared IONET char ⁇ acter channel 140 as is illustrated in Fig. 4. Any one of the I/O devices 176 can communicate with either com ⁇ puter system 100a or 100b.
  • Com- munication over the IONET channel is controlled by con ⁇ ducting address signals or tokens over the cable, as will be described in greater detail later.
  • the connection capabilities are therefore based on software and firmware operating in the computer system and POU adapters, and allows each of the I/O devices to be switched onto or off of the IONET channel by redirecting the tokens. Since no physical switching needs to be done, the failure of any one of the computer systems does not immobilize the devices attached to that computer system since the attachment is logical.
  • the present invention also incor- porates security facilities to permit an I/O device to appear to be directly attached to a single computer sys ⁇ tem despite the presence of many such systems on the same cable. These facilities are discussed in more detail below.
  • FIG. 5 The normal configuration of networked computer sys ⁇ tems, each of which incorporates the IONET channel, is illustrated in Fig. 5.
  • Two separate computer systems, 100a and 100b, are connected for the purpose of resource sharing by the single cable 128 of the LAN 126.
  • Each of the computer systems 100a and 100b has an IONET channel 140a and 140b, respectively, connected to it by which to attach a plurality of I/O devices 176.
  • any I/O device 176 attached to any particular IONET char ⁇ acter channel to access resources on computer systems other than the computer system to which the particular IONET channel is connected is a function of the LAN sup ⁇ port in the operating system software running on the com ⁇ puter systems r and will be present to the degree to which that system software supports the functionality.
  • Another beneficial advantage of the present inven ⁇ tion which is not specifically illustrated, but which can be understood by reference to Fig. 4, is the possibility of using the single cable 170 for achieving the func ⁇ tionality of both a LAN and the IONET character channel.
  • the software within each of the computer systems 100a and 100b supports both the LAN inter-computer protocol and the IONET protocol.
  • the single cable system is capable of handling the combined traffic of the resource sharing activities in the LAN and the peripheral I/O activities on the IONET channel.
  • Such an arrangement will utilize more transfer bandwidth with the same number of attached I/O devices, and should be used only where the aggregate bandwidth of the cable is sufficient to handle this combined load.
  • This provides a very eco- nomical means of interconnection.
  • Such an arrangement requires even less cable leaving the computer system enclosure than in the separate LAN and IONET channel con ⁇ figuration illustrated in Fig. 5.
  • ARCNET a LAN
  • ARCNET is a trade ⁇ mark of the assignee hereof, and has been registered in the United States Patent and Trademark Office.
  • the present invention can be implemented with any type of token pass ⁇ ing LAN technology.
  • the present invention is described in conjunction with its preferred embodiment which utilizes ARCNET supported LAN technology.
  • ARCNET LAN The hardware and software components of an ARCNET LAN are commercially available and well known.
  • the assignee hereof has published extensive information regarding its ARCNET LAN, in, among other things, the ARCNET Designer's Handbook, copyright 1983, and available from the assignee.
  • the Standard Microsystems Corporation of 35 Marcus Boulevard, Hauppauge, New York 11788 has manufactured two of the significant integrated circuits which are utilized in the ARCNET LAN and in addition has published significant operating information which allows those skilled in this field to build and use the ARCNET LAN.
  • Such descriptions can be found in the Standard Microsystems Corporation data catalogue, published in 1985, at pages 193 through 213.
  • the ARCNET features utilized in conjunction with the present inven ⁇ tion will be described below in a relatively abbreviated sense.
  • the ARCNET LAN is based on a token passing system.
  • a token passing system each Node on the network- awaits the arrival of a unique short sequence of digital bits, i.e. a signal known as a token, from a logically adjacent upstream Node. Receipt of the token indicates that the Device at that Node is then allowed to transmit or send information over the network.
  • the network is arranged to assure that only a single token is present on the network at a time. After sending the information, the Node sends the token to the next logically succeeding Node on the network where the procedure repeats * If a Node receives the token when it has nothing to send, it passes the token immediately.
  • the ARCNET LAN is arranged so that only active Nodes are present on the network at any time. Thus, those Nodes which are inactive or powered off are not logically or electrically participating in the receipt and transmission of the tokens.
  • the ARCNET network is capable of reconfiguring itself to accommodate Nodes which join the network and to eliminate Nodes which drop off of the network by dynamically adjusting the addresses of the Nodes to which the token is passed. Such changes in the activity state of Nodes may occur while the network is in operation without affecting network operation above the link level.
  • the standard communication medium used on the ARCNET LAN is an RG-62 coaxial cable. This cable is designated 170 in Fig. 2.
  • Other communication media may include fiber optics, free air infrared links, microwave links and shielded twisted pair cables.
  • Each hub contains a plurality of ports to which media interface units known as resource interface modules or RIMs can be attached in order to communicate with each processor, or to which other links of cable are attached.
  • RIM resource interface modules
  • a RIM is present at each Node. Hubs serve as active or passive repeaters between sections of cable and do not have any function in signal routing. A hub simply retransmits any incoming signal over each of its other ports as an outgoing signal. Hubs have also been described in the published literature relating to the ARCNET LAN, and are also available for purchase on the commercial market.
  • the physical topology of the ARCNET LAN is that of an unconstrained branching tree.
  • the logical configura ⁇ tion of the electrical connectivity of the ARCNET LAN is that of a bus in which each transmitting Node transmits its signals to all other Nodes on the LAN.
  • the cabling in the ARCNET LAN is bi-directional meaning that signals flow in both directions, alternately, over the cable.
  • the ARCNET LAN is a logical ring based on arithmetically ascending network RIM iden- tification values.
  • the LAN automatically reconfigures itself to eliminate inactive Nodes from the logical ring and to add newly active Nodes to the logical ring so that the token is passed from active Node to active Node based on RIM identification numbers. Time is not wasted in transferring the tokens to Nodes which are inactive.
  • the token may be passed from active Node to active Node with ⁇ out regard to the physical location or position of the Node on the network. The token passes between all the active Nodes on the network before returning to the orig- inal Node, thereby following a ring-like pattern.
  • the RIM serves as the physical interface means to the communication media or cable 170, both in the present invention and in a conventional ARCNET LAN.
  • One such RIM, designated 178, is included within each POU adapter 172 and in each computer system 100a attached to the interconnection media cable 170 as is shown in Figs. 6 and 7, respectively.
  • Each RIM 178 includes a transmitter by which to transmit or broadcast signals onto the cable 170, a receiver which receives the signals broadcast over the cable 170, a plurality of message buffers for receiving and holding the messages or signals to be transmitted and which are received over the cable 170, and the arbitration and other logic required to share the buffers between the processor to which the RIM is attached, such as the microcomputer 180 shown in Fig.
  • the RIM uses base band signaling over the interconnect cable 170.
  • the RIM 178 is transformer coupled to the interconnect cable 170, which allows it to be powered on and off while the LAN is in operation with minimum impact on the operation of the network and no impact in terms of degrading network per ⁇ formance when the RIM is powered off.
  • Each RIM is assigned a physical address, often referred to as a RIM ID. This address is used to accomplish the token pass- ing.
  • each POU adapter 172 includes a microcomputer 180 and a device interface 182, as shown in Fig. 6.
  • the microcomputer 180 has sufficient computing power to handle the necessary data rate and implement the IONET channel communication and control protocol.
  • the microcomputer 180 does not include operating system functionality, LAN functionality or other multiuser functionality. A substantial savings in overhead and an increase in network bandwidth is thereby obtained, as well as a considerable decrease in cost.
  • the microcomputer 180 might better be described as a microcontroller which contains a simple central pro- cessing unit (CPU) plus a small amount of random access memory (RAM) , a small amount of read only memory (ROM) and various I/O and timer functions on a single inte ⁇ grated circuit chip.
  • the preferred embodiment uses a Hitachi HD63B01YO microcomputer which was chosen for its cost and space effectiveness. More information regarding this microcomputer can be found in the Hitachi
  • the device interface 182 of the POU adapter 172 is specific to the particular type of I/O device 176 attached to the POU adapter 172.
  • the device interface 182 may be an RS-232 serial interface for attaching terminals and modems, an 8-bit parallel interface for attaching low cost printers, an interface for attaching the most popular varieties of personal com- puters, or an 8-bit general purpose handshake interface for attaching some types of peripheral devices.
  • the point of use adapter 172 can be embedded in any particular type of Device as is illustrated in Fig. 2, or may be a separate enclosure attached at a physically close location to the device. In all cases, the interconnect cable 170 directly attaches to the POU adapter 172.
  • Fig. 7 illustrates the connection of a computer sys ⁇ tem 100a to the cable 170 of the IONET channel.
  • the cen- tral processor 102 of the computer system is connected to the RIM 178, and the RIM is connected to the cable 170 at a node 174.
  • the IONET function of the central processor 102 is entirely similar to that function of the microcomputer 180, except that the central processor or the computer system does not interface directly with I/O devices.
  • the central processor 102 simply supports the IONET protocol and communicates directly through the RIM over the cable 170, without requiring the use of sep- arate protocols required to obtain communication to and from channel controllers and multiDort adaDters as is com on in the prior art. Only the RIM is necessary to interface computer systems to the cable, not the complete POU adapter. If more than one IONET channel is used from a single computer system 100 (Fig. 3) more than one RIM 178 is required.
  • Fig. 8 illustrates a representative POU adapter 172a in greater detail.
  • the adapter 172a supplies serial data to and receives serial data from a conventional I/O device 176a in the RS 232 format.
  • the RIM 178 includes a hybrid circuit 190 which is electrically connected to the interconnection communica ⁇ tion medium or cable 170.
  • the hybrid circuit 190 is a commercially available product and is available for sale from Centralab, Inc., 2601 South Moorland Road, P.O.
  • the hybrid circuit includes the transformer coupling.
  • a clock oscillator 192 supplies clock signals to the transceiver 194. In addition to controlling the signals within the POU adapter 172a, the clock 192 also establishes synchronization with respect to the data bits appearing on the cable 170.
  • the transceiver 194 is a commercially available item from Standard Microsystems Corporation under the designation COM 9032.
  • the transceiver 194 contains a transmitter which supplies signals to, and a receiver which receives signals from, the hybrid circuit 190.
  • the transceiver 194 also sup- plies clock signals to a controller 196, and to the microcomputer 180 over the conductor 198.
  • the controller 196 is the heart of the RIM 178. Connected to the controller 196 are a series of switches 200 by which to establish the unique RIM identification number (RIM ID).
  • RIM ID is synonymous with the Node on the network to which the RIM 178 is attached.
  • the controller 196 contains a microprogrammed sequencer and all of the logic necessary to control token passing on the network and to send and receive data packets at the appropriate time.
  • the controller 196 also establishes the network configuration and automatically reconfigures the network as new Nodes are added to or deleted from the network.
  • the controller 196 also performs address decoding functions, cyclic redundancy checking (CRC) dur ⁇ ing packet generation and reception and packet acknowledgement as well as other network functions.
  • CRC cyclic redundancy checking
  • a standard multiplexed address/data bus 202 extends from the controller 196, and is the means by which a data and address communication interface is accomplished.
  • a uni-directional address driver 204 and a bi-directional data transceiver 206 may also be connected to the bus 202 for the purpose of allowing the microcomputer 100 to access this bus.
  • An external packet buffer, random access memory (RAM) 208 is also connected to the bus 202.
  • the RAM 208 should include at least 2048 of 8-bit storage locations, which is suffi- cient to hold up to 8 complete IONET packets.
  • the RAM 208 may be accessed by both the controller 196 and the microcomputer 180.
  • a buffer pointer 210 is provided for the purpose of identifying which of the 8 packet storage areas are to be used for transmission of packets, recep- tion of packets, and processing of packets by the mircocomputer 180.
  • the controller 196 supplies all the signals necessary to allow arbitration of access to the RAM 208 buffer between itself and the microcomputer 180.
  • the RAM 208 is a conventional digital product memory item.
  • the microcomputer 180 contains the necessary memory and processing capability to respond to the control information contained within the IONET protocol, for con ⁇ trol and byte stream data communication purposes.
  • the microcomputer 180 functions in conjunction with the con- troller 196 and transceiver 194 to implement a trans ⁇ mitter state machine and a receiver state machine.
  • the transmitter state machine controls the transmission of signals from the RIM 178 onto the cable 178.
  • the receiver state machine controls the reception of signals from the cable 170 to the RIM 178.
  • the information encoded into the transmitted signals and decoded from the received signals is stored in the designated areas of the packet buffer RAM 208.
  • the microcomputer 180 includes a parallel I/O port 212 and a serial I/O port 214.
  • the serial I/O port 214 is connected to line drivers and receivers 216 to commu ⁇ nicate with the I/O device 176a, in the case of the RS-232 POU adapter 172a shown in Fig. 8.
  • the parallel port 212 may be used.
  • a “Server” is a processor which simultaneously supports multiple IONET sessions with the binding between its subaddresses and its internal, func ⁇ tional entities capable of being assigned dynamically at session initiation.
  • a “Client” is a POU adapter (or com ⁇ puter) which supports one or more IONET sessions with fixed binding between its subaddresses and its internal, functional entities.
  • a “Device” is an entity at one end of the full-duplex communication path of an IONET ses ⁇ sion.
  • the terms “Client” and “Server” are used herein as descriptive terms relating to typical usage patterns. Communication using the present invention can be estab ⁇ lished by pairs of Devices, whether Client: and Client, Server and Server, or Client and Server.
  • a Device is identified by an address, which is the RIM ID of the pro ⁇ cessor or POU adapter associated with the Device, and a subaddress, which is the means for discriminating the source and destination Devices for each packet at each processor or POU adapter which may connect a plurality of Devices simultaneously.
  • a "Node” refers to everything attached to the IONET channel with a RIM.
  • a “session” is a point to point full duplex virtual circuit established between a pair of Devices.
  • a session consists of two "half sessions”.
  • a half session is the communication link between a transmitter at one Node and the receiver of the corresponding session partner at the other Node. There are two half sessions, one in each direction, for every full session that is established.
  • the signals conducted over the cable 170 control communication over the network. Those signals form an IONET protocol for communication and control over the IONET channel.
  • the IONET protocol takes advantage of the properties of the ARCNET local area network hardware, but the IONET protocol is not ARCNET specific.
  • the IONET protocol could operate with comparable efficiency and identical functionality on any token based network, but may operate with reduced efficiency when arbitration techniques other than token passing are employed.
  • the preferred embodiment of the interfaces to the network is constrained only by the need to support the IONET protocol and to interface to the LAN medium which has been utilized, such as the ARCNET LAN.
  • the IONET protocol operates independently of any particular device or any particular operating system and independently of the characteristics of any I/O channels on various com ⁇ puter systems.
  • the IONET protocol is a completely peer to peer protocol existing at the network, transport and session layers of the International Standards Organization (ISO) open system interface (OSI) reference model for communi ⁇ cation, which will be described below.
  • ISO International Standards Organization
  • OSI open system interface
  • the IONET protocol there is no func- tional distinction at the level of the control functions or the byte stream communication between any Devices other than as may be constrained by specific capabilities of those Devices.
  • the OSI model shown in Fig. 9 is useful for describing communication systems, including networks. In theory it is possible to replace the functionality of any of the layers with equivalent functionality implemented in a different manner and all of the other layers will remain unaffected and will operate properly in the sys- tern.
  • the communication between one I/O device, 176a, and another I/O device 176b over the communication medium such as the cable 170 is described on the basis of seven layers or levels, each of which involves a certain level of functionality within the communication protocol. The lowest level is the physical layer 220.
  • the physical layer 220 involves the physical connec ⁇ tions to the communication medium 170, and the physical signaling such as voltage levels in an electrical system, optical modulation in a fiber optic system, and radio frequency modulation in a microwave system, for example.
  • the physical layer is repre ⁇ sented by bit streams present on the communication medium.
  • the next layer up is the link layer 222, sometimes called the data link layer.
  • the data link layer 222 is the layer in which the physical delivery of raw data between Nodes on the network is accomplished.
  • the physi ⁇ cal signaling protocol including link information, syn ⁇ chronization information, error correction information, block sizes, framing, etc. are conducted at this level.
  • the link level 222 is the level at which fundamental communication errors are able to be detected and either corrected or retransmissions requested. Communication between a pair of Nodes on the network depends on compatible implementation of data link layers.
  • the link layer establishes, main ⁇ tains and releases data links and is used for error detection and physical flow control.
  • the third layer is the network layer 224.
  • the network layer 224 relates to the routing of information through the network, including addressing, network ini ⁇ tialization, error detection and recovery, and to the switching, segmenting and blocking of the information. Sometimes acknowledgement of raw delivery data is accomplished at the network level, and sometimes it is accomplished at the link level.
  • a communication aspect which has not been directly addressed in the OSI model in an explicit layer refers to the means by which logical arbitration of the right to transmit at the physical layer is accomplished. OSI would normally place this arbitration on the link layer 222, but sometimes it is placed elsewhere. For purposes of the present disclosure, media access control is con ⁇ sidered to be a link level function.
  • the transport layer 226 relates to the transparent data transfer, end-to-end control, multiplexing, mapping and the like.
  • the data delivery implies reliable delivery, as opposed to a best effort to deliver the data which must be accounted for in the layers below the transport level.
  • the transport level it is assumed that the data has been communicated in a reliable manner, and such things as the retransmission of missing data, reordering of the data delivered out of order, recovery from transmission errors, etc. has been corrected at or below the transport layer.
  • the data input and output at the transport level 226 and in the higher levels is data which is meaningful to the computer system as opposed to raw data formatted appropriately for the network.
  • the fifth level is the session level 228.
  • the ses ⁇ sion level 228 utilizes the delivery of information from the transport level to group pieces of data as associated with a given activity referred to as sessions. Sessions occur between two entities at various locations on the network. At a given time, single Nodes on the network may be involved in multiple sessions going to a plurality of other Nodes, and many sessions may be multiplexed over the same network. However, the session layer services provide for the end-to-end delivery of data associated with a given logical activity without interference by data from other activities.
  • Level six is the presentation layer 230.
  • the pre ⁇ sentation layer 230 relates to the interface between the session level 228 and the application level 232 at level seven.
  • the application level 232 is where the actual data is applied to or received from the I/O device (176a or 176) at each end of the communication.
  • the presenta ⁇ tion level 230 is essentially one of presenting the data in an acceptable form suitable for use in the application level 232 without having to compromise the network related integrity of the session layer 228.
  • the presen- tation layer 230 therefore relates to data interpreta ⁇ tion, format and code transformation, while the applica ⁇ tion layer relates to user application processes and management functions.
  • IONET data packet 240 The byte arrangement of an IONET data packet 240 is illustrated in Fig. 10, and in Fig. 11 this IONET packet is broken down into the hierarchical levels which corre ⁇ spond to the OSI model illustrated in Fig. 9.
  • an alert burst 242 Not included in the IONET packet shown in Fig. 10 is an alert burst 242 which is generated in a RIM by the controller 196 (Fig. 8) to identify the beginning of a packet.
  • the alert burst 242 consists of six sequential "1" bits, and occurs at the physical level as is shown in Fig. 11.
  • the remaining part of the information in the physical level packet 244 is a set of 8-bit bytes containing link level information 245.
  • the RIM transmits a start of heading (SOH) byte which is a character marking the beginning of an ARCNET data packet.
  • SOH start of heading
  • the RIM transmits a source identification (SID) byte 248 indicating the RIM ID of the Node which is sending the packet.
  • SID source identification
  • the next two following bytes are repetitions of a destination identification (DID) byte 250.
  • the DID bytes 250 indicate the RIM ID of the Node to which this packet is addressed or destined.
  • the DID byte appears twice for error control and reliability rea ⁇ sons in an ARCNET LAN.
  • the next following byte 252 is encoded to identify the packet length (number of network level bytes), and is generally referred to in ARCNET ter ⁇ minology as a continuation pointer (CP) .
  • the ending two bytes of the packet are a 16-bit cyclical redundancy check (CRC) 254.
  • CRC cyclical redundancy check
  • the CRC bytes 254 are employed by the RIM for purposes of detecting transmission errors.
  • the SOH 246 at the beginning, and the CRC 254 at the end, of the link level packet 245 are normally not con- sidered part of the ARCNET packets because they are both generated and checked by the network interface hardware (e.g., the ARCNET controller 196) and never appear in the packet buffer (RAM 208, Fig. 8) of the RIM.
  • the remaining bytes of the header of the link level packet 245 do appear in the packet buffer, although the network hardware supplies the SID 248 on outgoing packets regard ⁇ less of the value in the packet buffer.
  • the DID for each receiver will always equal the RIM ID or will be zero for broadcast packets (which are received by all Nodes).
  • the typical ARCNET packet is 256 data bytes, or less, in length. However, it is also possible to communicate over the ARCNET LAN in long data packet lengths of up to 512 data bytes.
  • the CP 252 is 2 bytes long making the link level header six bytes in length rather than the five shown.
  • the network level information 257 following the CP 252 and preceding the CRC 254 is information which is passed from the controller 196 (Fig. 8) up to network level interpretation within the low level software or firmware of the computer system or POU adapter.
  • the network level packet 257 commences with a 7 byte header starting with the system code (SC) byte 256.
  • the SC byte 256 is a common feature of all ARCNET packets and indicates the type of packet.
  • the system code is used to identify and distinguish different types of communication protocols which might be in use simultaneously.
  • the SC 256 in the ARCNET header 258 identifies an IONET packet through the code unique to IONET packets, the following 10 bytes 260 constitute the IONET header of the IONET packet 240.
  • the IONET header 260 provides network level and transport level information and indi ⁇ cates how the remaining data area 262 is to be divided between administrative information 264 and byte stream information 266.
  • the admin ⁇ istrative information 264 may be supplied by, inspected by, or modified by IONET controlled components, but the
  • _ byte stream information 266 is always handled in a trans ⁇ parent manner and is therefore delivered to the destina- tion I/O device unmodified from the source value which constituted it at the time of transmission.
  • the first six bytes of the IONET header 260 are a part of the network packet 257. Those bytes are, in order, a transmitter status byte (TXSB) 268, a receiver status byte (RXSB) 270, a 2 byte source subaddress (SSA) 272, and a 2 byte destination subaddress (DSA) 274.
  • TXSB transmitter status byte
  • RXSB receiver status byte
  • SSA 2 byte source subaddress
  • DSA 2 byte destination subaddress
  • the remaining 4 bytes of the IONET header 260 are contained within the transport level packet 276.
  • the first byte of the transport level packet 276 is a byte indicating the packet function (PFN) 278.
  • the next following byte 280 is not currently used but is reserved for future expan ⁇ sion.
  • the third byte is an administrative length value (ADL or ADLNG) 282.
  • the function of the ADL byte is to identify the length of the administrative information 264 of the data area 262.
  • the last byte 284 is a byte stream length value (BSL or BSLNG) 284.
  • BSL byte 284 identifies the length of the byte stream information 266 of the data area 262.
  • the ADL 282 and BSL 284 bytes are both employed because the combined length of the adminis- trative information 264 and the byte stream information 266 can be less than the total length of the network levei packet 257. In such cases the remaining bytes in the network level packet 257 beyond those defined for the data area 262 are not used.
  • the length of the data area 262 may be up to 242 bytes in short packet mode or up to 497 bytes in long packet mode.
  • the CP 252 extends for 2 bytes in length and both the ARCNET header 258 and the IONET header 260 extend for one additional byte other than that illus ⁇ trated in Fig. 10. More details regarding the ARCNET header 258 and the IONET header 260 are illustrated by the chart shown in Fig. 12, which illustrates the name of each of the fields; within each header, the bit layout from the least signify icant bit on the right to the most significant bit on the left of each field, and summarizes the uses of each field.
  • the source identifier (SID) 248 in the ARCNET header 258 of each incoming packet is checked by the RIM at each receiving Node whenever a session is in progress. All packets sent by the active session partner are accepted for interpretation and processing. All packets received from the RIMs at other Nodes, except those containing certain level control functions, are discarded, and the RIM receiver is immediately re-enabled. When no session is in progress, all incoming packets are interpreted, but only those containing certain network and transport level control functions relating to establishing a session and reporting or setting parameters or statistics are accepted for processing.
  • the destination identifier (DID) 250 of the ARCNET header 258 is either equal to the RIM ID of this node, or is zero for broadcast messages.
  • RIMs used on the IONET channel are always configured to accept broadcasts. Only Locate commands, described below, are accepted as broadcasts by Devices. Any other broadcasts received, even if they have the IONET system code (SC) , are discarded by the Devices.
  • the continuation pointer (CP) 252 of the ARCNET header 258 is used to determine the length of the IONET packet.
  • the CP is one byte long for short packet mode, and contains the packet length subtracted from 259.
  • the 5 CP is two bytes long, with the first byte set to zero, and the second byte set to the packet length subtracted from 516, for long packet mode.
  • the system code (SC) 256 of the ARCNET header 258 may be any particular coding to identify the IONET 10 protocol, and one exemplary coding is illustrated in Fig. 12. Incoming packets with other system codes (other, than a diagnostic system code) are discarded by all Clients and are handled by other protocol code, if at all, by all Servers. 15
  • the IONET header 260 is used by all the transmitter and receiver state machines to control the byte stream communication over the communication medium of the network, to direct the packet contents to the correct logical I/O device, and to determine the contents of the 20 data area 262 (Fig. 10) of the packet.
  • the operation field of the TXSB contains a code for the transport level usage to be made of the IONET packet.
  • the transport level uses which may be encoded in the operation field are: NOP, used for keep alive messages; IDLE, which indicates a transmitter waiting (TW) state; DATAF, which indicates a transmitter active (TA) or imme ⁇ diate transmitter active (ITA) state on the final (or only) packet in the transmission group, where the PFN 278 field controls the usage of the data area; DATAI, which indicates a TA state on initial or intermediate packets in the transmission group, where the PFN 278 field con ⁇ trols the usage of the data area; CONTROL COMMAND which is further encoded in the function field of the TXSB byte; and CONTROL REPLY which is further encoded in the function field of the TXSB byte.
  • the sequence number or function field of the TXSB byte 268 contains the sequence number of the packet being transmitted when the operation field is encoded for all functions except CONTROL COMMAND and CONTROL REPLY func ⁇ tions.
  • the control function is encoded in the function field of the TXSB as is shown in the fol ⁇ lowing chart:
  • This command is only accepted when the config ⁇ uration lock is not set.
  • a CONTROL COMMAND is present in the operation field of the TXSB 263 when the TXSB value begins with “E” or "6" on the chart.
  • the function achieved by the particular CONTROL COMMAND is indicated in the "Control Function” column.
  • Data func ⁇ tions encoded in the operation field of the TXSB are indicated by TXSB values which begin with "4", "5" or "C”.
  • the “LNG” field shows the length required or allowed for each type of control function.
  • the “Received By” column indicates the class of Device, either Clients (C) , Servers (S) or both (A), which may receive each type of IONET packet.
  • the “Session” column indicates whether the command is accepted either in and out of session, indicated by “E”, or whether the command is accepted only in out of session indicated by "0”, or whether the command is accepted only when in session, indicated by "I”.
  • the “Mode” column indicates whether the packet must be sent as an immediate packet, indicated by "I”, whether the packet must be sent as a normal pri ⁇ ority packet, indicated by "N”, or whether the packet may be sent in either normal or immediate mode, indicated by "E”.
  • a reply packet is generated by the recipient Device and is sent back to the Device which sent the original control command.
  • the TXSB, PFN, and LNG columns under "Reply" provide the control encodings and lengths for the CONTROL REPLY functions sent in response to the various CONTROL COMMANDS.
  • the receiver status byte RXSB 270 of the IONET header contains information relating to the state of the receiver state machine at the Device which transmitted the packet.
  • the high order bit or immediate field is set to distinguish between acknowledgements of immediate packets and normal packets.
  • the acknowledgement field (ACK) encodes the acknowledgement to the last packet received by the Device by sending codes such as, NOP; BUSY, which indicates a receiver waiting (RW); or an immediate receiver waiting (IRW) state; and READY, which indicates a receiver active (RA) or an immediate receiver active (IRA) state.
  • the sequence number field contains the sequence number of the packet being acknowledged.
  • the source subaddress (SSA) 272 of the IONET header identifies the specific source Device at the Node from which the packet is sent.
  • the destination subaddress (DSA) 274 identifies a specific destination Device at the Node which is receiving this packet.
  • the packet function PFN 278 defines the usage of the data area 262 (Fig. 10) of the IONET packet in cases where the TXSB indicates that this is a "data" packet by an operation code of "DATAI” or "DATAF".
  • the type code field of the PFN 278 encodes general usage of the packet to indicate a data transfer, where the data area contains byte stream and administrative data for use by the I/O device; or a Client control command, where the data area contains control information for use by the Client firmware; or a Client control reply, where the data area contains control information sent in reply to a control request.
  • the bits designated ASL and ADL of the PFN 278 are used to hold the most significant bits of the length values in the ADLNG 282 and BSLNG 284 bytes described below.
  • the function code field of the PFN 278 is always set to zero for data transfer functions.
  • the Client function is encoded to indicate the flush buffers, run extended diagnostics, and report status functions previously iden ⁇ tified in the above chart.
  • the address length (ADLNG) 282 and byte stream length (BSLNG) 284 bytes form a data area descripter.
  • the data area descripter defines the usage of the data area 262 (Fig. 10) of the IONET packet.
  • the value within the ADLNG field 282 specifies the length of the adminis- trative information 264 (Fig. 10). If the administrative information length is not zero, the administrative data begins immediately after the data area descripter 282 and 284 and extends for the specified number of bytes. Bit 4 of the PFN byte 278 serves as the most significant bit of the ADLNG 282 byte to allow for ADLNG values greater than 255 for use with long packet mode.
  • the number encoded in the BSLNG field 284 specifies the length of the byte stream information portion 266 (Fig. 10) of the data area 262. If the value within the BSLNG byte is not zero, the byte stream area begins at the byte following the administrative area, or follows the data area descripter 282 and 284 if the ADLNG field 282 is zero.
  • the byte stream information extends for the number of bytes specified in the field 284. Bit 5 of the PFN byte 278 serves as the most significant bit of the length value specified in the BSLNG field 284 to allow for BSLNG values greater than 255 for use with long packet mode.
  • the most frequent packets sent over the IONET chan-r nel are those which transfer byte stream data for use by the destination I/O device.
  • Control function packets are those whose contents are interpreted within the support software or firmware of the IONET Server or IONET Client, and are not seen by the I/O device.
  • the IONET control function packets are those identified in the above chart- and are identified in the TXSB 268, as described in conjunction with Fig. 12.
  • the IONET control function commands and replies are available at several levels.
  • Network level control func ⁇ tions relate to Nodes on the IONET channel and are inde ⁇ pendent of session activity. Transport level control functions are used to establish, control and terminate sessions.
  • Session level control functions are used to control the interface to the I/O device and are only useable when a session is in progress, with the excep ⁇ tions noted.
  • Session level byte stream functions trans- fer data, control and status information to and from the attached I/O devices.
  • Control command messages are always sent using short IONET packets. All CONTROL COMMANDS require the recipi ⁇ ent thereof to send back a CONTROL REPLY packet. Thus, control functions involve a distinctive handshake between the transmitter state machines of the two communicating devices. This handshake does not involve the receiver state machines.
  • the generalized details applicable to each CONTROL COMMAND and CONTROL REPLY follows. The positive acknowledgement of a CONTROL COMMAND in the form of a CONTROL REPLY packet is always required, independent of the transmit packet count. No further transmissions (other than retries) are made until the corresponding CONTROL REPLY has been received. Sequence numbering is neither required nor used for control func ⁇ tion packets.
  • Control function acceptance is encoded in a completion code byte which appears as the first byte of administrative data in all CONTROL REPLY packets.
  • Exemplary types of completion code values which are encoded into the administrative area 264 of the data area 262 of each IONET packet 240 which transmits the control reply may be as follows, among others: Successful com ⁇ pletion of the control function; the control function is not supported by the destination Device; the control function is rejected due to the state of the receiver; the control function is rejected because the Device is not in session; the control function is rejected because the Device is already in session; the control function is rejected because a configuration lock associated with the Device is set; and there is a specification error in the CONTROL COMMAND parameter(s) .
  • the network level control functions include report device parameters, report statistics, report interface parameters, set device parameters, set interface parameters, and locate. There is also a null function, not shown in the above chart, which is ignored by the recip-ient without generating either an error nor a reply.
  • These network level control functions are accepted by the IONET Nodes at any time, whether or not a session is in progress, These control functions do not have to originate at the SID of the active session partner to be accepted during at- session.
  • the report device parameters CONTROL COMMAND causes the IONET Device to generate a CONTROL REPLY packet containing information on the type and status of the I/O device.
  • the report device parameters command is recog ⁇ nized by all Devices, is accepted whether or not a ses ⁇ sion is in progress, and is accepted from any source when the Device is in session, not just from the session part- ner. Some of the information being reported relates to attributes of the Node. This information is reported on a uniform basis for all Devices.
  • the report device parameters command is not accepted from broadcast packets due to the large amount of network traffic which would be generated, the lack of a broadcast capability which refers to subaddresses, and the inability to determine if responses have been received from all devices.
  • the report device parameters command is sent as an immediate packet.
  • the format of the CONTROL REPLY packet transmitted in response to a report device parameters CONTROL COMMAND ay advantageously include in the administrative informa ⁇ tion section 264 of the data area 262 (Fig. 10): an indi ⁇ cation of the completion code described above, type code used to identify Clients or Servers ⁇ and the type of I/O device interface 182 (Fig. 6) associated with the Device, a packet length and transmit packet count which indicates the maximum number of DATAI packets allowed before a DATAF packet is required, and a session initiation type byte.
  • the session initiation type byte indicates a li i- tation on an IONET Device which limits its communication to predetermined Clients or Servers in a predetermined session.
  • This type of restricted communication capabil ⁇ ity is advantageously employed for the purpose of limiting access to certain Devices and requiring certain levels of security in order to obtain communication between particular Devices.
  • the report statistics CONTROL COMMAND causes the Device to which the command is addressed to generate a CONTROL REPLY packet containing statistics information gathered by the Device.
  • This command is recognized by all Nodes at subaddress zero, and may be recognized by all Devices. This command is accepted whether or not a session is in progress, and is accepted from any source when the Device is in session, not just from the session partner.
  • Some of the information being reported relates to attributes of the Node, and is reported in the same form for all Devices at that Node.
  • This command is not accepted from broadcast packets due to the large amount of network traffic which would be generated, the lack of a broadcast capability which refers to subaddresses, and the inability to determine if all responses have been received.
  • This command is sent as an immediate packet.
  • the report interface parameters CONTROL COMMAND causes the Client Device to generate a CONTROL REPLY packet containing information on interface status and related modal state of the Device.
  • the information is reported from the set of parameters stored in RAM memory associated with the Device and currently in use by the Device. These values may vary from the parameter values stored in non-volatile memory in the Client under certain conditions.
  • This command is recognized by all Clients in a Device specific manner, is rejected by all Servers, is accepted by Clients whether or not a session is in prog ⁇ ress, and is accepted from any source when the Client Device is in session, not just from the session partner.
  • the report interface parameters command must be sent in an immediate packet by Devices other than the session partner, and may be sent in either the normal or immedi ⁇ ate packet form by the session partner. Certain bytes in the administrative information 264 of the data area 262 (Fig. 10) of the IONET packet may be devoted to communicating values which are different than those parameters stored in RAM memory.
  • the set device parameters CONTROL COMMAND causes the. Client Device to store new values into its non-volatile memory. This command is only accepted by Client Devices and only when the configuration lock is not set in which case the command is accepted from any source, not just the session partner (if any). This command must be sent as an immediate packet.
  • Additional information contained within the adminis ⁇ trative information section of the data area of the IONET packet can include bytes which identify external equip ⁇ ment type, a Device name, the session initiation type of the Device, the type specific service class of the
  • the set interface parameters CONTROL COMMAND causes the Client Device to set new values for interface control and the related modal state.
  • the new values are aDDlied to the interface and are stored in RAM within the Client. These values may also be stored in non-volatile memory within the Client. This command may also be used to recall the values from non-volatile memory into RAM.
  • the set interface parameters command is recognized by all Clients in a Device specific manner, is rejected by all Servers, is always accepted by Clients from the session partner and is accepted by Clients from any source whether or not in session if the configuration lock is not set.
  • the set interface parameters command must be sent in an immediate packet by Devices other than the session partner, and may be sent in either a normal or immediate packet by the session partner.
  • Additional information contained in the administrative information section of the IONET packet relates to RAM or non-volatile memory control for writing parameters from the packet into RAM or into both RAM and non-volatile memory and for recalling parameters from non-volatile memory into RAM.
  • Other information in the administrative information sec ⁇ tion relates to device type specific interface parameters.
  • the locate CONTROL COMMAND may be sent as a broadcast by Devices attempting to establish a session in order to determine the RIM identification number and subaddress of a desired destination Device attempted to be located by the use of a name assigned to it. If mul ⁇ tiple replies are received all but the first of these replies is ignored.
  • the locate command is recognized by all Nodes at subaddress zero, is accepted whether or not a session is in progress, and is accepted from any source when the Device is in session, not just the session part ⁇ ner.
  • the locate command is the only control command function accepted from broadcast packets. A locate command must be directed to subaddress zero of the destination.
  • reply packet identifies the specific Device at the responding Node which has been located by transmitting its identification number. If multiple Devices at the responding Node match the specified name, then multiple reply packets are generated. If no Devices at Nodes receiving the locate packet match the specified name then no reply is generated.
  • the expiration of a timeout interval while waiting for a reply to a locate command is an indication that no active Device has a matching name.
  • the locate command must be sent as an- immediate packet.
  • the locate packet also contains a desired service class. If this value is zero, only the name must match, otherwise both the name and service class must match.
  • the completion code in the reply to a locate command distinguishes between the case where a Device is able to accept a connect command for the specified service class, and the case where the Device cannot accept such a connect command.
  • the transport level control command functions include connect, forward, dis ⁇ connect, redirect and resynchronize.
  • the connect CONTROL COMMAND establishes a session, if none is in progress and is rejected if received when a session is in progress.
  • Either Clients or Servers can initiate the session by sending the connect control command.
  • Connect requests to Servers should generally be sent to the subaddress returned by the locate command for the desired session partner's name (or to subaddress zero).
  • the Server may redirect session communication to a different subaddress by sending an appropriate value for the source subaddress (SSA) 272 (Fig. 12) field of the reply packet. Session traffic should subsequently be directed to the destination subaddress obtained from the SSA field of the reply packet.
  • the connect command must be sent as an immediate packet.
  • the administrative information sec ⁇ tion of the connect CONTROL COMMAND packet includes information relating to the type of Device, its hardware and firmware or software revision level, its protocol version support, its maximum subaddress, its packet length and transmit packet count, its incoming transmit buffer length, its minimum incoming transmit length, the time before forcing an incoming packet to be sent by Clients, a source external equipment type, a source Device name,, a source session initiation type, source service class, and a session initiation password.
  • a CONTROL REPLY packet is generated whether or not the connection request is successful. If the completion code field contains an indication that the session has not been successfully established, the completion code specifies the reason for the failure. Some of the reasons which may be specified in the completion code for the failure to successfully establish the session are the control function has been rejected because the Device is already in session, there is a specification error in the control function parameters, the replying Device does not support the par ⁇ ticular protocol version or the hardware revision level or the firmware or software revision level requested, the Device is in an unavailable service class, the Device is not configured for remote initiation, or there may be a remote password or name mismatch.
  • the other administrative information in the CONTROL REPLY packet may relate to the protocol version to use, the packet length to use, the transmit packet count to use, the incoming transmit buffer length, the minimum incoming transmit length, and the time before forcing the sending of an incoming packet.
  • the forward CONTROL COMMAND configures a Server Device to be a packet forwarder for inter-network linkage. Once the forwarding is established, the Device neither interprets nor acknowledges IONET packets, but simply forwards them in both directions to the estab ⁇ lished link. Since it is not possible to communicate with a forwarding Device, all configuration in this
  • the forwarding Device does not operate transport control state machines, but does monitor the reverse channel for a disconnect CONTROL REPLY code to know when to terminate forwarding. To avoid loss of resources when communica ⁇ tion is lost in a disorderly manner, forwarding is termi ⁇ nated, and the Device goes into an unconnected state, i ⁇ no communication is received in either direction for a timeout interval specified in the forward command which established the link.
  • Forward requests should generally be sent to subaddress zero.
  • the forwarder may redirect communica ⁇ tion to a different subaddress by setting an appropriate value for the SSA field 272 (Fig. 12) of the reply packet. Communication should subsequently be directed to the destination subaddress obtained from the SSA field ⁇ s£ the reply packet.
  • the forward command is rejected if received when a session is in progress.
  • Devices which are not able to function as packet forwarders (including all Clients) always reject this command.
  • Either Clients or Servers can initiate forwarding by sending a forward command.
  • the forward command must be sent as an immediate packet.
  • the administrative information section of the forward IONET packet preferably includes the name of the destina ⁇ tion network, the name of the desired destination device, the desired class of service, and the connection timeout periods.
  • the destination Device of the forward command accomplishes a locate function on the destination network for the designated destination device to determine the RIM ID and the subaddress to which communications should be forwarded.
  • a disconnect CONTROL COMMAND terminates a session. The disconnect command is rejected if no session is in progress. Either Clients or Servers can initiate a dis ⁇ connect command. The disconnect command must be sent as an immediate packet.
  • a redirect CONTROL COMMAND is sent simultaneously to the session partners of two active sessions from a Node which desires to redirect traffic of those two sessions so that the partners in these sessions communicate with each other and no longer with the Node sending the redirect command. This command must be sent in an imme ⁇ diate packet.
  • the administrative information section of the redirect packet includes the new destination identi ⁇ fication and the new destination subaddress. The comple ⁇ tion of a redirect command involves resynchronization, as described below.
  • a resynchronize CONTROL COMMAND causes the trans ⁇ mitter and receiver state machines at each end of a ses ⁇ sion to reset to their state upon establishment of a ses ⁇ sion. This allows communication to be re-established without disconnection and reconnection in cases where sequence number or other synchronization between the two devices has been lost.
  • Either Clients or Servers can send a resynchronize command when a session is in progress.
  • the resynchronize command is rejected if no session is in progress.
  • the resynchronize command must be sent as an immediate packet.
  • the session level control functions include flush buffers, run extended diagnostics, and report status. These session level control functions are interpreted by the interface control firmware in Clients. These control functions are not supported by Servers, with the excep ⁇ tion of the flush buffers function. The details of most of these commands are Client-type specific, and only their common aspects are discussed below. Note that these session level control functions are sent in packets whose TXSB values indicate data transfer (DATAF) , but ⁇ whose PFN values indicate client control request and client control reply.
  • DATAF data transfer
  • the flush buffers control function causes the recip ⁇ ient to discard any packets or partial packets present in receive buffers within the POU adapter or low level software.
  • the flush buffers command is accepted by any Device with a session in progress, and is ignored when no session is in progress.
  • the flush buffers command is sent as an immediate packet.
  • the run extended diagnostics control function causes' the Device to perform diagnostic functions and report on their results. These diagnostic functions may be identi ⁇ cal to those performed by default at power on, or may be extensive or specialized tests. This command is recog- nized by all Clients in a type specific manner. Clients which do not implement extended diagnostic functions report a successful completion of this command.
  • the run extended diagnostics command may be sent in either a normal or immediate packet.
  • the administra ⁇ tive information section of the IONET command packet may include information regarding the diagnostic parameters, and the administrative information section of the IONET reply packet includes information regarding the diagnostic results.
  • the report status control function causes the Device to generate a reply data packet containing information on the I/O interface status of the Device.
  • This command is recognized by all Clients in a type specific manner. This command is recognized by all Clients, is rejected by all Servers, and is accepted only when a session is in progress.
  • the command may be sent in either a normal or an immediate packet.
  • the minimum response in the reply IONET packet consists of standardized interface control and status discussed below in conjunction with session level byte stream functions.
  • the session level byte stream functions include DATAI, to transfer initial or intermediate data packets; DATAF to transfer final or only data packets; IDLE to place the receiver state machine into a stopped state; and NOP for keep-alive messages. Use of these functions is discussed below in conjunction with the transport con ⁇ trol state machines.
  • the administrative information portion of the data area of the DATAI and DATAF IONET packets is used for a standardized interface control and status facility.
  • the advantage of a standardized control and interface facil ⁇ ity is that it provides a means for directly accessing Device control and status information in a manner which is independent of the physical I/O device type.
  • the I/O . device type independence permits a single implementation of low level software at a Server to communicate with and control virtually all types of I/O devices.
  • the administrative data area of the DATAI and DATAF IONET packets is used to hold an input status word (ISW) which reports the state of the external interface control input signals and provides an indication of generic- ower on/off and generic ready/not-ready status; a status mask word (SMW) which selects which input status changes are of interest to the session partner and should cause reporting in this administrative data area; and an output control word (OCW) which specifies settings of external interface output control signals.
  • ISW input status word
  • SSW status mask word
  • OCW output control word
  • All DATAI and DATAF packets used for data transfer are interpreted as follows: if the administrative data area is null, no interface control or status changes are occurring; if there are exactly two bytes of administra ⁇ tive data, these bytes are the ISW; if there are exactly four bytes of administrative data, these bytes are the ISW followed by the SMW; if there are exactly six bytes of administrative data, these bytes are the ISW, the SMW and the OCW, respectively; and if there are more than six bytes of administrative data, the first six bytes are the ISW, the SMW, and the OCW, while the additional bytes are. type specific.
  • the most significant bit of each ISW, SMW and OCW is a validity or enable bit. A word with its validity bit set to zero is ignored.
  • the ISW reports external interface control input status
  • the SMW reports the current mask settings
  • the OCW reports the current external interface control output settings.
  • the ISW is not used
  • the SMW is used to set the status mask value
  • the OCW is used to set the external interface control outputs.
  • communi ⁇ cation from Servers to Servers the ISW, SMW and OCW are generally not used, and for communication from Clients to Clients these three words are generally ignored.
  • session level security for data message communica ⁇ tion is based on the use of the SID to prevent a third Device from interferring with the communication between a pair of Devices participating in an IONET session.
  • SID Session ID
  • data and control packets are only accepted if their SID matches the SID of the Node which sent the original connect command function packet or which sent the reply to the original connect packet.
  • this security tech- nique provides a barrier against unauthorized communica ⁇ tion from the other Nodes. This occurs because the ARCNET link level hardware prevents the transmission of an SID other than its established SID.
  • Sessions may be established and controlled by the use of passwords and configuration locks.
  • a password is certain information established in the memory of a device.
  • the connect command packet In order to establish a session, the connect command packet must originate from a Device which has a SID which corresponds to the password or is within a group of SIDs defined by the password. All clients main ⁇ tain certain Device parameters in non-volatile memory. The contents of this non-volatile memory is subject to access and update by IONET control functions unless a configuration lock is set by another IONET control func- tion. Once the configuration lock is set no changes may be made to the contents of the non-volatile memory until the configuration lock is cleared by human action accomplished at the Device, for example, operating a switch. Setting the configuration lock allows the Device configuration to be protected from unauthorized modifica ⁇ tion.
  • Clients can be configured for remote session initiation, in which case a Server must initiate the ses ⁇ sion.
  • a Server must initiate the ses ⁇ sion.
  • users can be restricted from altering the location and/or the charac ⁇ teristics of the task which will initiate the session.
  • Clients can be configured for predetermined session initiation, in which case the session partner is identi- fied and fixed in the non-volatile memory of the Client.
  • the configuration lock is set to prevent the user and the application hardware from changing the session initiation type and session partner.
  • predefined ses- sions provide the appearance of a direct, dedicated con ⁇ nection between a single server and a single client despite the multicontext, multiplexed nature of the com ⁇ munication medium.
  • This type of dedicated predefined point-to-point communication on a multiplexed medium is not typically available on conventional I/O channels except through the use of dedicated point-to-point single use cabling.
  • Remote session initiation requests arriving at any Device may require a password if the session initiation type is not predefined, thereby allowing Devices to be configured to exclude unauthorizing incom ⁇ ing access. In the case of point of use adapters, the remote session password may not be read out or modified if the configuration lock is set.
  • the transport control state machines operate to pro- vide the functionality necessary for communication over the IONET communication channel, and operate in response, to the IONET protocol described above.
  • the communication-" is a full-duplex logical link, at the session level, between pairs of communicating Devices. Each logical link involves two transmitters and two receivers, each of which is controlled by a simple state machine. Every session has an instance of both transmitter and receiver state machines operating at each Node participating in the session.
  • the purpose of the state machines is to synchronize byte stream delivery, acknowledge successful receipt of packets, detect and re-transmit missing or lost packets, detect and ignore duplicate packets, provide periodic "keep alive" packets during intervals when no data is being communicated, provide flow control which prevents transmission of packets for which no receive buffer is available, and avoid unnecessary flow control activities by stopping communication during periods when there is no data to send and/or no buffer space to receive the data, and thereafter restarting communication when these condi- tions are remedied.
  • the TXSB of the IONET header communicates the state of the transmitter state machine which is sending the packet to the receiver state machine which is expected to receive the packet.
  • the RXSB communicates the state of the receiver state machine at the Device which is sending this packet (not the receiver state machine which is receiving the packet) to the transmitter state machine at the Device which is the destination of this packet (not the transmitter state machine which is sending this packet) .
  • the acknowledgement to each packet appears as the RXSB of the next packet sent by the transmitter at the Device which received the packet being acknowledged.
  • this "piggybacking" arrangement of acknowledgements conserves network bandwidth.
  • packets containing the acknowledgement will be generated.
  • a packet is sent. If one of the state machines has nothing to send at that time, it reports no status using a "NOP" code in its status byte.
  • Maximum transmit packet counts are established between session partners at the time a session is estab ⁇ lished.
  • the default transmit packet count is one packet, which results in positive acknowledgement of every packefc transmitted.
  • the largest allowable transmit packet count is 15, and is limited by the use of a 4-bit sequence num ⁇ ber to maintain packet delivery synchronization.
  • the transmit packet count used by any Device should not exceed a value one less than the number of packets the associated receiver state machine can buffer without having to inhibit the RIM receiver. The higher the transmit packet count, the less network bandwidth and processing time is used in sending acknowledgements, and less time must be elapse between successive transmis- sions; but a greater number of buffers must be retained by the transmitter state machines to handle the possible need for re-transmission.
  • Figs. 13 and 14 show the general state transitions in terms of what conditions move the transmitter and receiver state machines between the states.
  • the condi ⁇ tions which cause the state machines to remain in the same state are characterized by either complex determina ⁇ tions based upon received information as shown in the following state transition table of Figs. 15, 16, 17 and 18, or by receipt of packets which are outside the protocol and are therefore ignored leaving of the machine in the same state.
  • Fig. 13 shows the five basic transmitter states: TA (Transmitter Active) when the transmitter has information to send and is in the process of sending or attempting to send it; TW (Transmitter Waiting) when the transmitter is able to transmit data as far as flow control is con ⁇ cerned, but has nothing to transmit, and therefore it is waiting on internal conditions within its node to make more data available; TS (Transmitter Stopped), indicating that the transmission has been stopped due to transport level flow control, that is a busy indication from the - receiver state machine at the opposite end of the ses- sion; ITA (Immediate mode Transmitter Active) entered from the normal mode when there are immediate packets to send; and ITS (Immediate mode Transmitter Stopped), which is equivalent to TS (Transmitter Stopped) but occurring due to transport level flow control while in immediate mode.
  • TA Transmitter Active
  • TW Transmitter Waiting
  • the drop back from the immediate mode to the nor ⁇ mal mode is implicit as soon as all the immediate packets have been sent.
  • the state indicated as "Out of Session" is not strictly speaking a state, but rather a condition where the state machine does not operate because no ses- sion is in progress.
  • the Out of Session condition is entered after reset of the channel or the Node, as well as a result of the end of the session either through the disconnect control function or a time out which termi ⁇ nates the session.
  • the transmitter state machine enters the TS (Transmitter Stopped) state because of the fact that until the receiving device has indicated it is ready to receive data, the transmitter has to assume the receiver may be busy.
  • the first thing that is communicated in the ses- sion is a ready indication from the receiver to the transmitter to take the transmitter out of TS state.
  • the remainder of the states and conditions which cause the transitions between states are understood from the diagram of Fig. 13.
  • Fig. 14 shows the five basic receiver states: RA
  • the drop back from the immediate mode to the normal mode is implicit as soon as each immediate packet has been acknowledged.
  • the state indicated as "Out of Session" is not strictly speaking a state, but rather a condition where the state machine does not operate because no ses- sion is in progress.
  • the out of session condition is entered after a reset of the IONET channel or the Node, as well as a result of the end of session either through the disconnect control function or timeout which termi ⁇ nates the session.
  • the receiver state machine diagram shown in Fig. 14 the states and the number and direction of transition conditions linking the states is identical to the transmitter state machine diagram of Fig.
  • TA and RA are a pair for dealing with active communication. If the transmitter has nothing more to send, it indicates idle and goes to the TW state. The idle message from the transmitter places the receiver in the RS state. The receiver will be removed from the RS state by the transmitter becoming active again, which is a transition from TW back to TA. If the receiver runs out of buffers to hold incoming data, it indicates a not ready condition, going from RA to RW. This moves the transmitter into the TS state.
  • trans ⁇ mitter and receiver state machines More specific details on the operation of the trans ⁇ mitter and receiver state machines are discussed below and in conjunction with Figs. 15, 16, 17 and 18.
  • the transmitter state machine handles all outgoing packets for a given device, provides the transmitter status byte TXSB for all packets it handles, generates sequence numbers for outgoing data packets, matches acknowledgements to packets which have been sent, retransmits unacknowledged packets after a timeout has expired, generates keep-alive packets at predetermined time intervals during periods when no outgoing data is available, and breaks the connection if more than a greater second predetermined time period elapses without a status reply from the corresponding receiver state machine.
  • the normal mode transmitter states are shown in Fig. 15.
  • the states are Transmitter Active (TA) , entered when there is outgoing data to transmit and when the trans- mitter is awaiting the acknowledgement for transmitted packet(s); Transmitter Waiting (TW) , entered when the last transmitted packet has been acknowledged and no fur ⁇ ther outgoing data is available; and Transmitter Stopped (TS), entered when the receiver has halted communication because no receive buffer space is available.
  • TA Transmitter Active
  • TW Transmitter Waiting
  • TS Transmitter Stopped
  • the trans ⁇ mission of normal packets and of immediate packets are treated as independent activities.
  • There is a semi- independent transmitter state machine for immediate packets shown in Fig. 16, using ITA and ITS transmitter states.
  • the transmitter state machine After reset, as well as when no immediate packet is pending or awaiting acknowledgement, the transmitter state machine is in normal mode, and uses TA, TW, and TS. When presented with an immediate packet to transmit while in normal mode the transmitter state machine enters immediate mode in an ITA state and sends the packet.
  • the transmitter state machine remains in immediate mode until all pending imme ⁇ diate packets have been sent and acknowledged. At this time the transmitter state machine returns to normal mode in whatever state was active at the time the first imme ⁇ diate packet was presented.
  • packets relating to normal priority activities may arrive at a transmitter state machine while processing of an immediate packet is in progress. These receptions are handled based on the state of the normal mode trans ⁇ mitter, although no other normal mode operations occur until immediate mode processing has been completed.
  • the transmitter state machine expects positive acknowledgement for every immediate packet, independent of the value specified for the transmit packet count.
  • n which represents the current sequence number used for transmission of normal priority packets
  • m which represents the highest (normal prior ⁇ ity) message sequence number for which the 'corre- sponding receiver state machine has acknowledged successful reception
  • p which represents the current sequence number used for transmission of immediate packets
  • t which represents the transmit packet count in use for this direction of the active session
  • x which represents a value in the range 0 to 15.
  • the transmitter state machine indicates its state transitions using an operation code and sequence number in the transmitter status byte (TXSB) of each packet it sends.
  • Permissible operations include
  • DATAIn indicating that this packet contains byte stream and/or administrative data and that this packet is an initial or intermediate packet in a group of two or more packets being transmitted with- out positive acknowledgement;
  • NOPx used for keep-alive messages (sequence number is ignored) ;
  • CONTROL COMMAND used for functions such as Connect, Disconnect, Report Device Parameters, etc. (sequence numbering not used);
  • CONTROL REPLY used to send completion codes and reply data in response to CONTROL COMMANDS (sequence numbering not used) .
  • the events which can cause state transitions in the transmitter state machine include
  • BUSYn+1 which denotes receipt of a packet whose receiver status byte contains acknowledgement type BUSYn+1, indicating that the receiver has suc ⁇ cessfully received all packets transmitted up through DATAFn, but that the receiver currently has no additional buffers available (or an insufficient number of buffers to accept a group of packets the length of the active transmit packet count);
  • Tl which denotes expiration of the timeout interval relating to retries and keep-alives, this timeout is reset each time any packet is transmitted to the session partner;
  • T2 which denotes expiration of the timeout interval relating to loss of communication or protocol violation, this timeout is reset each time any valid packet is received from the session part ⁇ ner.
  • items in capital let ⁇ ters indicate transmissions of packets with the indicated function in the transmitter status bytes
  • items in lowercase letters indicate internal operations within the transmitter state machine
  • items beginning with a right arrow indicate the state entered upon completion of the activities in the box.
  • Other operational characteristics of the transmitter state machine are as follows. If more than one event occurs simultaneously, the event shown in the left-most column of the table is handled first. Other events are only handled if they are still true after the initial event is handled.
  • the Tl timeout interval varies with transmitter state as shown, the T2 timeout interval is always a fixed value greater than Tl.
  • Receipt of any receiver status message of "NOPx" causes the T2 timer to be reset, but is otherwise ignored by the transmitter state machine.
  • Transmission of a CONTROL COMMAND or a CONTROL REPLY may take place wherever "DATAFn" appears. No further transmissions take place after sending a CONTROL COMMAND until the corre ⁇ sponding CONTROL REPLY is received. If the Tl time interval expires while waiting for this CONTROL REPLY, the CONTROL COMMAND is re-transmitted. No acknowledgement is expected, nor required, for each CON ⁇ TROL REPLY.
  • the CONTROL COMMAND activity (and the session, if any) is terminated. All packets received from the session partner with receiver status values other than those covered by the events defined in the state transition table are ignored by the transmitter state machine without resetting the T2 timer. This results in timeout-based session termination due to protocol violations. There are also error conditions shown on the state transition table which specify that the T2 timer should not reset.
  • Tl timeout interval varies with transmitter state as shown, the T2 timeout interval is always a fixed value greater than Tl.
  • Tl and T2 timers are the same ones used with the normal mode transmitter state machine. Receipt of any receiver status message of "NOPx" (regardless of sequence number) is causes the T2 timer to be reset, but is otherwise ignored by the transmitter state machine. Transmission of a CONTROL COMMAND or a CONTROL REPLY may take place wherever "DATAFp" appears. No further trans ⁇ missions take place after sending a CONTROL COMMAND until the corresponding CONTROL REPLY is received.
  • the Tl time interval expires while waiting for this CONTROL REPLY the CONTROL COMMAND is re-transmitted. No acknowledgement is expected, nor required, for each CON ⁇ TROL REPLY. If the T2 time interval elapses without receiving a CONTROL REPLY the CONTROL COMMAND activity, the session, if any, is terminated. All packets received from the session partner with receiver status values other than those covered by the events defined in the state transition table are ignored by the transmitter state machine without resetting the T2 timer. This results in timeout-based session termination due to protocol violations. There are also error conditions shown on the state transition table which specify that the T2 timer should not reset.
  • the transmitter state machine Upon establishment of a session, or upon resynchronization, the value of p is initialized to zero.
  • the transmitter state machine Upon entry to immediate mode, the transmitter state machine sends a DATAFp packet and enters ITA state. The value of p used for this DATAFp packet is unchanged from the previous exit from immediate mode (or resynchronization) .
  • the receiver state machine handles all incoming packets for a given Device, provides the receiver status byte RXSB for incorporation in all outgoing packets from this Device; generates sequence numbers for outgoing acknowledgements; retransmits free buffer available indi ⁇ cations if no new packets are received within a timeout interval; generates keep-alive packets at predetermined -time intervals when no free buffers are available; and breaks the connection if more than a greater second pre ⁇ determined time period elapses without a status reply from the corresponding transmitter state machine.
  • the normal mode receiver states are shown in Fig. 17.
  • the receiver states are Receiver Active (RA) , entered when there are one or more receive buffers avail ⁇ able; Receiver Waiting (RW) , entered when no receive buffers are available; and Receiver Stopped (RS), entered when the transmitter has halted communication because it has no outgoing data to send.
  • RA Receiver Active
  • RW Receiver Waiting
  • RS Receiver Stopped
  • the reception of normal packets and of immediate packets are treated as independent activities.
  • the receiver state machine enters immediate mode with IRA state and acknowledges the packet.
  • the receiver state machine remains in immedi ⁇ ate mode (states IRA and IRW) until the received immedi ⁇ ate packet has been acknowledged. At this time the receiver state machine returns to normal mode in whatever state was active at the time the first immediate packet was received.
  • packets relating to normal priority activities may arrive at a receiver state machine while processing of an immediate packet is in progress. These receptions are handled based on the state of the normal mode receiver, although no other normal mode operations occur until immediate mode processing has been completed. This implies that there must be at least one (generally exactly one) receive buffer available when the normal mode receiver enters RW state.
  • the receiver state machine generates positive acknowledgement for every immediate packet, independent of the value specified for the transmit packet count.
  • Several integer values are maintained by the receiver state machine to track message sequence and detect missing and/or duplicated packets. These include n, which represents the current sequence number used for normal priority reception; m, which represents a sequence number, associ ⁇ ated with a received normal priority packet, which may be earlier in sequence than n, but is within the range of the active transmit packet count.
  • the receiver state machine indicates its state tran ⁇ sitions using an acknowledgement code and sequence number in the receiver status byte of each packet it sends.
  • Permissible acknowledgements include READYn, indicating that the receiver has suc ⁇ cessfully received all packets up through "n-1" and is capable of accepting at least the number of packets allowed by the transmit packet count;
  • NOPx used for keep-alive messages (sequence number ignored) .
  • the events which can cause state transitions in the receiver state machine include
  • DTFn denotes receipt of a packet whose transmitter status byte contains function type DATAFn, indicating arrival of the next expected sequence value on the last (or only) data packet in a group of packets for which positive acknowledgement is needed;
  • IDLEn which denotes receipt of a packet whose transmitter status byte contains function type IDLEn, indicating that the transmitter currently has no additional data to send
  • DATAFm which denotes receipt of a packet whose transmitter status byte contains function type DATAFm, indicating that the transmitter state machine has not successfully received the last acknowledgement to a data packet and that a retry of that transmission (and subsequent transmissions) is occurring
  • DATAIn which denotes receipt of a packet whose transmitter status byte contains function type DATAIn, indicating arrival of the next expected sequence value on an initial or intermediate data packet in a group of data packets for which acknowledgement will be generated after the entire group is received (as will be indicated by receipt of a packet with function type DATAFn); If the num ⁇ ber of DATAIn events since the last DATAFn event exceeds the active transmit packet count minus 1, receipt of DATAIn packet is ignored. ' "t Receive Buffers Available”, indicating that at least "t” free receiver packet buffers have become available after a condition where less than "t” free receiver buffers had been available;
  • T3 which denotes expiration of the timeout interval relating to retries and keep-alives, this timeout is reset each time any packet is transmitted to the session partner;
  • T2 which denotes expiration of the timeout interval relating to lost communication or protocol violation, this timeout is reset each time any valid packet is received from the session partner.
  • Operation of the receiver state machine in normal mode is characterized by the table shown in Fig. 17.
  • items in capital let- ters indicate transmissions of packets with the indicated function in the receiver status bytes
  • items in lowercase letters indicate internal operations within the receiver state machine
  • items beginning with a right arrow indicate the state entered upon completion of the activi ⁇ ties in the box.
  • receiver state machine Other operational characteristics include: If more than one event is pending simultaneously, the one which appears the left-most column of the table is processed fully before any consid ⁇ eration is given to the one(s) further to the right. In most cases processing the left-most event will cause other events to no longer be pending when such processing is completed. Receipt of a CONTROL COMMAND or CONTROL REPLY packet causes the receiver state machine to reset the T2 timer and to pass the packet to the control func- tion processing facilities of the device. The receiver state machine takes no other action, and does not acknowledge CONTROL COMMANDS or each CONTROL REPLY.
  • the T3 timeout interval varies with receiver state as shown, the T2 timeout interval is always a fixed time.
  • Operation of the receiver state machine in immediate mode is characterized by the table shown in Fig. 18.
  • items in capital let- ters indicate transmissions of packets with the indicated function in the receiver status bytes
  • items in lowercase letters indicate internal operations within the receiver state machine
  • items beginning with a right arrow indi ⁇ cate the state entered upon completion of the activities in the box
  • the designation "Rx" refers to the normal mode state (RA, RW, or RS) which is appropriate to enter upon termination of immediate mode operation.
  • Receipt of a CONTROL COMMAND or CONTROL REPLY packet causes the receiver state machine to reset the T2 timer and to pass the packet to the control function processing facilities of the device.
  • the receiver state machine takes no other action, and does not acknowledge, CONTROL COMMANDS or each CONTROL REPLY.
  • the T3 timeout interval varies with receiver state as shown, the T2 timeout interval is always fixed. These T3 and T2 timers are the same ones used on the normal mode receiver state machine. Receipt of any transmitter status message of "NOPx" (regardless of sequence number) causes the T2 timer to be reset, but is otherwise ignored by the receiver state machine.
  • All received packets from the session partner with trans ⁇ mitter status other than those covered by the defined events are ignored by the receiver state machine without resetting the T2 timer. This will invoke timeout-based recover -on protocol violations. There are also error conditions shown on the state transition table which specify that the T2 timer is not to be reset.
  • the receiver state machine Upon establishment of a session or resynchronization, the receiver state machine is set inactive with p initialized to 0. Upon entry into immediate mode the receiver state machine enters IRA state with the value of p unchanged from the previous exit from immediate mode (or from resynchronization) .

Abstract

An I/O network channel (140) achieves relatively high rates of data communication between a plurality of widely physically dispersed devices interconnected by a LAN-type media (170). A processor (172) connected to each node (174) of the media controls the data transmitting and receiving functions at each node to establish network level, transport level and session level data communication and control functions.

Description

I
INPUT/OUTPUT NETWORK FOR COMPUTER SYSTEM
This invention relates to improving the input/output (I/O) of a computer system, and is particularly useful for economically connecting to the computer system a rel- atively large number of low or medium speed I/O devices or peripherals of mixed types over a relatively large geographic area to achieve efficient time sharing of the computer system resources and effective communication between the I/O devices and the computer system. Background of the Invention
The increasing demand for the time sharing of com¬ puter resources among a plurality of different, rela¬ tively low speed, external I/O devices has caused a nuϊft- ber of evolutionary changes in computer system architecture over the years. Many of these changes have centered around the I/O subsystem. I/O channel control¬ lers have been devised to avoid restricting the pro¬ cessing speed available from modern central processors and to attempt to accommodate increasing numbers of I/O devices. I/O channel controllers are usually of either a bulk storage type or a character type. A bulk storage I/O channel controller is used for controlling high speed transfers of relatively large amounts of data from one or more external bulk storage devices, such as disk drives, over the bus of the computer system to the system main memory. Due to the relatively small numbers of bulk data transfers and the relatively large amount of data trans¬ ferred during each single continuous high speed transfer operation, the efficiency of operation of bulk storage channel controllers is not usually considered to be a major limiting factor. However, substantial limitations have been caused by attempting to transfer relatively small amounts of data, usually characters, a relatively large number of times on an intermittent basis, as is the case with a relatively large number of relatively low and medium speed I/O devices such as terminals and printers. The character I/O channel controllers which have evolved in response to the increased use of low and medium speed I/O devices have continued to increase in complexity and may be reaching the point of diminished effectiveness relative to the improvements attempted to be gained.
The most common version of a character I/O channel controller uses its own relatively complex processor to multiplex data to and from a fixed number (e.g. 8, 16 or 32) of I/O devices connected to it. The character chan¬ nel controller's I/O ports may be limited to a specific type of device for strictly local connection. If the character channel controller is not device specific, a similarly complex I/O adapter is required to communicate between the I/O channel controller and each device or group of devices. The operating functions of the I/O channel controller, the I/O adapter, the host computer, and the I/O devices are shared between all of these com¬ ponents. The communication and control protocol used to accomplish such communication is usually complex, requires substantial overhead in the operating system, generally complicates the transfer of I/O data, and usually limits the data throughput.
The majority of the cost incurred in connecting devices to the computer systems is created as a result of the relatively complex operating nature of the I/O pro¬ cessors in the channel controllers and adapters and the protocol which is required. In order to defray some of this relatively high cost, it is typical to provide a multiplicity of ports at each I/O adapter for the purpose of connecting a multiplicity of I/O devices. The I/O devices must usually be located in close physical proxim- ity to the I/O adapter because cable lengths can restrict the speed at which reliable data transfers can be accomplished. To connect a new I/O device to the com¬ puter system in cases where an unused port on a multiport I/O adapter is unavailable, another multiport I/O adapter must be connected to the channel controller. The user incurs connection costs which are not necessarily related to the addition of each new I/O device on the system, because the addition of each new multiport adapter involves paying for the capability of connecting a multi¬ plicity of I/O devices, whether or not all of these con- nection ports are utilized. In some situations, the cost of connecting an I/O device to the system may exceed the cost of the I/O device itself.
The type of multiplexing used in character I/O chan¬ nel controllers and adapters may also create limitations. One type of multiplexing is known as centralized polling. With centralized polling, the central processor sends signals which interrogate each I/O device in order and regardless of whether or not it has data to send. Another form of polling, known as induced polling or polling on demand, initiates this type of centralized polling only when an adapter sends a change of status signal. Induced polling avoids the processing burden or overhead of continuously polling all of the adapters and I/O devices, but requires all of the adapters to be polled in order once during any polling sequence. Poll¬ ing requires considerable software functionality at either the central processor or channel controller, and wastes time in polling both the active and inactive I/O devices, and in interpreting the results of the polling. Another type of multiplexing is generally referred to as access on demand. Access on demand multiplexing usually involves a request from an adapter for access to the communication link and some form of arbitration for resolving competing requests from different adapters. Signal propagation delays in arbitration systems can create significant adverse influences. Because signal propagation delays increase with greater physical cable lengths, arbitration techniques utilizing the central processor or system bus controller to resolve competing requests, known as centralized arbitration schemes, are usually limited to computer busses and other applications vhere the distances between the I/O adapters generating the requests and the arbitration logic extend no more than a few feet.
Token passing is a technique of distributed control or arbitration which has been used with success in local area networks (LAN),
Brief Summary of the Invention The present invention is designated as an I/O network (IONET) channel for a computer system. In gen- eral, the IONET-channel is for means of highly effective character and other communication between a plurality of low and medium speed devices of the same or mixed types connected directly to the I/O subsystem of a computer system, by using arbitration over LAN-type communication medium, relatively low cost point of use adapters with microcomputers distributed over the medium and connected to each I/O device individually or to a relatively small number of I/O devices, and a communication and control protocol which efficiently controls the microcomputers and to control communication of the data between the I/O devices and the computer system memory. The LAN-type communication medium, the protocol and the distributed low cost point of use adapters cooperatively function as an improved I/O channel controller, but without the sig- nificant limitations previously discussed.
The I/O devices can be attached at substantially greater distances from the central processor than for typical I/O channels because the arbitration control per¬ mits such connections without the attendant reduction in data throughput, and because LAN technology provides reliable data communication at longer distances than other schemes compatible with low cost cables. The com¬ munication and control protocol is relatively simple, does not require substantial overhead, and is conducive to efficient data throughput. The point of use adapters are relatively simply implemented and respond directly and effectively to the commands of the protocol to con¬ trol data transfers. The user incurs relatively low, fixed per-connection connection costs to attach each new I/O device to the system, thereby avoiding the large costs of single expensive shared logic multiplexing adapters and the physical placement restrictions associ¬ ated with connecting the I/O devices to such shared logic multiplexing adapters. The I/O devices can be positioned at widely distributed locations. The data throughput capabilities do not require real time sharing of the much faster central processor, despite the fact that communi¬ cation is occurring with considerably slower I/O devices. The user of each I/O device has access to the resources of a complete computer system without placing a complete computer system at each I/O device or terminal.
The protocol of the present invention achieves sig¬ nificant conservation of network bandwidth because it in¬ corporates transport level flow control. Packets of data are not attempted to be sent until it is established that the packets can be received. The protocol is generally immune from the loss or duplication of any one packet at any time. If a packet is duplicated or omitted the sys¬ tem will inherently recover at the transport level. Data messages can be forwarded between separate network seg- ments. The invention can also provide the appearance of a privately connected local device even in a multiprocessor environment, which is very useful for security considerations and restricting access to infor¬ mation. A significant part of the multiplexing function and the network control function has been moved into the protocol.
The present invention can be better understood from the following detailed description of a preferred embodiment of the present invention, which is also illus- trated in the accompanying drawings that are briefly described below. The actual scope of the invention is defined by the appended claims, and the description of the invention above should be considered only as a gener¬ alized summary of certain features.
Brief Description of the Drawings Fig. 1 is a generalized block diagram of a typical prior art computer system to which a bulk storage I/O channel, a character I/O channel and a local area network are connected.
Fig. 2 is a generalized block diagram of a computer system utilizing the IONET channel of the present inven¬ tion.
Fig. 3 is a block diagram illustrating the connec¬ tion of a plurality of I/O devices by a plurality of IONET channels. to a single computer system. Fig. 4 is a block diagram illustrating the connec¬ tion of a plurality of computer systems by one IONET channel to a plurality of I/O devices.
Fig. 5 is a block diagram illustrating a plurality of computer systems interconnected by an LAN and with each computer system having an IONET channel connecting a plurality of I/O devices to each computer system.
Fig. 6 is a block diagram of a point of use (POU) adapter of the IONET channel interconnecting an I/O device to a cable of the IONET channel. Fig. 7 is a block diagram of a computer system con¬ nected to the cable of the IONET channel.
Fig. 8 is a block diagram of an exemplary POU adapter using an RS 232 serial device interface.
Fig. 9 is an illustration of the seven layer Open System Interface (OSI) architecture of the International Standards Organization reference model for communication.
Fig. 10 is an illustration of an IONET packet of information communicated over the IONET channel r shown in sequential byte form. Fig. 11 is an illustration of the IONET packet shown in Fig. 10 which is broken down into the hierarchical levels corresponding to the physical, link, network, transport and session levels of the OSI model.
Fig. 12 is a chart which illustrates in greater detail the bit layout and other details of some of the individual bytes of the IONET packet shown in Fig. 10. Fig. 13 is an illustration of a generalized state transition diagram for a transmitter state machine of the POU adapter of the present invention.
Fig. 14 is an illustration of a generalized state transition diagram for a receiver state machine of the POU adapter of the present invention.
Fig. 15 'is a chart which characterizes the operation of the transmitter state machine in a normal mode.
Fig. 16 is a chart which characterizes the operation of the transmitter state machine in an immediate mode.
Fig. 17 is a chart which characterizes the operation of a receiver state machine in the normal mode.
Fig. 18 is a chart which characterizes the operation of a receiver state machine in the immediate mode. Detailed Description
The present invention can be better understood by reference to a typical prior art computer system 100 which is illustrated in Fig. 1. The computer system 100 includes the typical processor 102 which is connected to and communicates with the typical system main memory com¬ ponents 104. A typical I/O subsystem 106 is provided for communicating data to and from the main memory 104. The processor 102, the main memory 104 and the I/O subsystem 106 are all capable of communicating with each other at the high internal capacities or bandwidths that typify a modern computer system.
The I/O subsystem 106 will have one or more external interconnections for external peripherals. These exter¬ nal connections are typically called I/O channels. In most modern computer systems two types of I/O channels are employed. One type of I/O channel is a bulk storage I/O channel 108. The bulk storage I/O channel 108 is typified by supporting the high bandwidth transfers typi¬ cal of disk 110 and tape 112 storage devices. A bulk storage I/O channel 108 is typically limited in length to a tens of feet. A bulk storage channel 108 is able to perform data transfer to and from only one I/O device at a time, although some bulk storage I/O channels are capa¬ ble of handling overlapping operations where different devices are accessing data simultaneously but only one is only physically transferring data at a time* In general, a bulk storage channel is ncrt optimally suited for handling lower speed or less continuous duty cycle data transfers between system memory and I/O peripherals because of, among other things, relatively expensive cabling requirements, relatively extensive interface cir¬ cuitry, physical distance restrictions, and the optimization of the bulk storage I/O channel 108 for transfers of relatively large blocks of data with each transfer. To accommodate a relatively large number of individ¬ ual transfers of relatively short amounts of data, most computer systems also incorporate a character I/O channel 114. The term "character" describes its most predominant use, transferring data entities representating alphanumeric and special characters to and from external peripherals. However, the term "character" is in no way indicative of a restriction that only characters may be transferred. Graphics data, arbitrary binary data and other encodings of information may be transferred over the character I/O channel 114. The character I/O channel 114 is typified by a parallel or serial data bit trans¬ mission occurring at a speed generally lor-τer than that of the bulk storage I/O channel 108, but at a speed faster than any of the individual peripherals attached to the character I/O channel 114. The character I/O channel 114 is optimized for short transfers to a relatively large number of peripherals rather than long transfers to a small number of peripherals.
In medium and small sized computer systems, the most common connection arrangement to connect an I/O device is one or more multiport interface or adapter 116 attached to the channel 114. Typically the adapter 116 will be a part of the overall computer system 100. A number of low speed serial or parallel communication interfaces 118 exit the enclosure for the computer system 100 and elec- trically connect to and communicate with peripherals such as terminals 120, printers 122 and modems 124, for example. The interfaces 118 are typically low speed com¬ munication cables which tend to be severely limited in length unless modems are used, are limited in speed nor- mally to a few tens of kilobits per second at most, and limit the computer system capacity because each one of the cables 118 takes a noticeable amount of space on the back panel of the computer system 100 enclosure. Often, the number of external cables 118 which a modern computer system can support is more constrained by the amount of back panel space rather than the actual available I/O bandwidth of the computer system.
It is also typical practice to directly connect the multiport adapter 116 to the I/O character channel 114 within or immediately adjacent to the computer system enclosure. However, such direct connection is limited to a relatively short distance, thereby placing the multiport adapter 116 at a distance not significantly removed from the location of the computer system itself. In most large scale computer systems, the multiport adapter 116 actually includes a dedicated processor, often referred to as a front end processor, to actually control the communication and multiplexing between the various peripherals and the computer system 100. The functionality of the adapter 116 tends to be rather com¬ plex, thereby requiring a relatively complex and expensive processor of its own to prevent the processing requirements for the control of low speed I/O devices from placing an excessive load on the control processor 102. Furthermore, the communication and control protocol between the I/O subsystem 106 and the multiport adapter 116 tends to be complex and to require considerable internal communication overhead to and from system memory 104, in order to accomplish the multiplexing between the peripherals. The expense of the shared logic and relatively com¬ plex hardware required to be incorporated in each of the multiport adapters 116 has required that they have the ability to connect to a plurality of peripherals, typi¬ cally at least 4, usually 8 or 16, and sometimes 32 peripherals. Cost effectiveness is thereby gained, pro¬ vided that there are actually a large number of periph¬ erals to be connected to each adapter 116. Should all of the interfaces or cables 118 be occupied, it is necessary for the user to attach another multiport adapter 116 to the computer system to accommodate the next additional peripheral. The incremental cost for attaching such an additional peripheral can be extremely high and/or pro¬ hibitive, and may very well exceed the cost of the peripheral itself. Furthermore, because of the distance limitations of the character I/O channel 114 and the length limitations of the interface cables 118, all of the peripherals must be physically located at relatively close distance to the multiport adapter 116.
Devices having essentially the same general func- tionality as the multiport adapters 116 described above are sometimes referred to as I/O channel controllers.
In many cases, a local area network (LAN), desig¬ nated 126, is also attached to the computer system 100. Typically a LAN adapter 125 is used between the LAN medium 128 and the I/O subsystem 106. This LAN adapter most frequently attaches to the character I/O channel 114. A LAN 126 typically includes a network communica¬ tion medium or cable 128 to which a plurality of computer systems are connected for the purpose of sharing informa¬ tion. Each of the computer systems is connected to the LAN cable 128 at a tap or drop 130. Each system con¬ nected to the LAN cable 128 at a tap 130 is referred to as a Node. A variety of different conventional configu¬ rations of LANs are available, such as token rings, token busses, contention arbitrated busses and the like. The most significant differences between various conventional LANs is based on the sophistication of the networking software, thereby providing different degrees of resource sharing and functionality.
The network cable 128 can extend relatively long distances from the host or main computer system 100 to other Nodes. Some of these Nodes are other general pur¬ pose computer systems 100'. Some Nodes of the LAN may be special purpose devices known as front end processors 132. Front end processors are sometimes called cluster servers. The front end processors 132 do not provide general computing services, but serve as transparent interface elements to permit the attachment of terminals 134 or other non-computer I/O devices. Although con¬ nected by the LAN 126 to the I/O subsystem 106 through a LAN adapter 125, the disadvantages discussed in conjunction with the multiport adapter 116, which relate to the complex processing functionality, cumbersome over¬ head, and shared logic for multiplexing, generally applies to each of the cluster servers 132 as well. Cer- tainly the cost effectiveness of each cluster server 132 is dependent upon connecting a relatively large number of I/O devices 134 to it at relatively short distances. The incremental cost for attaching additional terminals to the LAN is usually magnified, however, because typically not all of the terminals can be located physically close to the cluster server. As a consequence, more cluster servers or other front end processors must be used than are actually needed just to accommodate the physical spacing of the I/O devices. This requirement contributes significantly to the cost of adding additional I/O devices.
In contrast to a typical prior art computer system, the present invention is illustrated generally in Fig. 2. An input/output network (IONET) channel 140 is provided for connecting the computer system 100 to a plurality of I/O devices, for example, terminals 142, printers 144, personal"computers 146, miscellaneous data collection equipment 148, modems 150, and statistical multiplexers 152. The modem 150 communicates over telephone lines 154 with a remote computer system 156, for example. The sta- tistical multiplexer 152 communicates over telephone lines 158 to a physically similar remote unit 160. A plurality of remote terminals 162 are connected to the remote statistical multiplexer 160. The statistical mul¬ tiplexers 152 and 160 reduce telephone line costs by combining the aggregate input/output going to and from the several, co-located remote terminals 162 on a single telephone line 158. As used herein an "I/O device" is a peripheral which cannot operate autonomously and requires some type of interface adapter to attach to a computer system, and is to be distinguished from a "Device" which does contain its own processor as is defined in greater detail below. An I/O device performs I/O information transfers.
The IONET channel 140 combines certain features of a token passing LAN and the character I/O channel to achieve significant improvements in attaching a rela¬ tively large number of low and medium speed I/O devices to the computer system while avoiding many of the signif¬ icant limitations present in the prior art. Although the IONET channel 140 is primarily a character channel, arbi¬ trary byte streams may be transferred over this channel and its use is not restricted to character transfer situ¬ ations.
The IONET channel 140 comprises a communication medium or cable 170, a plurality of point of use (POU) adapters 172 connected to the cable 170, and means for connecting the computer system 100 is at a node 174. The term "node" refers to the electrical connection to the cable, and is to be distinguished from the term "Node" which generally refers to all the equipment connected at a node, as is defined in more detail below. The IONET channel 140 can become the interface means by which the computer 100 is connected to the various I/O devices. An I/O device is intended to encompass all the variety of different types of non-processor, non-bulk storage peripherals which might be attached to the IONET channel, such as the terminals 142, printers 144, personal com¬ puters 146, data collection equipment 148, modems 150, statistical multiplexers 152, and the like.
The computer system 100 is simplified because it does not require separate LAN, multiport adapter, and miscellaneous other capabilities in its own character I/O channel interface repertoire. Furthermore, the computer system does not require the functionality of a network Node in the LAN protocol in order to communicate with peripheral devices, thereby allowing the computer system to avoid having to support a LAN protocol unless LAN com¬ munication with other computer systems is necessary. In contrast, a protocol suitable for use in conjunction with the IONET channel 140 is primarily for I/O device interfacing, and is not for resource sharing or remote operating system functions. As a result, the IONET protocol is relatively simply implemented at each of the remote I/O devices by the POU adapters 172.
The POU adapters 172 need not be physically located in relatively close proximity to the computer system 100 but rather, may be removed to considerable distances. For example, in the preferred embodiment of the present invention, the I/O devices can be located as much as 22,000 feet from the computer system 100. The data going to and from the I/O devices is multiplexed on the single serial cable 170. The POU adapters 172 are located within or adjacent to the I/O devices to which they attach. Examples of POU adapters 172 located within or embedded within the I/O devices are illustrated by the personal computers 146, wherein the POU adapters 172 are illustrated as enclosed within the same housing as the personal computers 146.
To accommodate a much larger computer system which attaches a larger number of I/O devices, a multiplicity of IONET channels 140a and 140b can be connected to the same computer system as is shown in Fig. 3. Fig. 3 illustrates the manner in which this approach can extend to support large numbers of I/O devices without a corre¬ spondingly large increase in the number of cables entering and leaving the computer system 100 enclosure* Each of the IONET channels 140a and 140b utilize a single conductor 170a and 170b respectively, and each of the IONET channels makes a single interface with the I/O subsystem of the computer system 100. By bringing out the low and medium speed I/O capabilities of the computer system in the form of the IONET channels illustrated, and by distributing the functions normally associated with the multiport adapters or front end processors into a plurality of POU adapters, the amount of panel space, and the cable innerconnection required on the host computer system is substantially reduced. Also, access to the computer system enclosure is not required to add periph¬ erals. Furthermore, the communication bandwidth is not reduced, since the aggregate bandwidth is measured by the several millions of bits per second of the LAN-type medium rather than the several thousands of bits per second typical of low speed communication cables coming out of the typical computer system. Another significant configuration benefit of the present invention is illustrated in Fig. 4. Conventional I/O channels, whether of the bulk storage or character oriented type, are limited to being attached to a single computer system, in order to provide the conduit for transferring information between the computer system and a plurality of external peripherals. Because of the nature of the present invention, it is possible to attach a plurality of computer systems 100a and 100b to a plu- rality of I/O devices 176 by a single shared IONET char¬ acter channel 140 as is illustrated in Fig. 4. Any one of the I/O devices 176 can communicate with either com¬ puter system 100a or 100b. There is no limit to the num¬ ber of such computer systems which can be connected to the IONET character channel, other than as might be imposed by the aggregate channel bandwidth and physical limitation of the number of Nodes to which the IONET channel 140 can support. This benefit is particularly important because there is no physical switching or phys- ical multiporting involved. This is in contrast to the conventional use of a multichannel switch on a peripheral or I/O channel for switching between conventional I/O channels, and is in contrast to the use of conventional patch panels or electronic switching systems which are available for controlling the connection of peripherals on multiple channels. Such conventional arrangements require increased costs and may decrease reliability, because of the additional hardware necessary to connect the particular peripheral to multiple I/O channels. Com- munication over the IONET channel is controlled by con¬ ducting address signals or tokens over the cable, as will be described in greater detail later. The connection capabilities are therefore based on software and firmware operating in the computer system and POU adapters, and allows each of the I/O devices to be switched onto or off of the IONET channel by redirecting the tokens. Since no physical switching needs to be done, the failure of any one of the computer systems does not immobilize the devices attached to that computer system since the attachment is logical. The present invention also incor- porates security facilities to permit an I/O device to appear to be directly attached to a single computer sys¬ tem despite the presence of many such systems on the same cable. These facilities are discussed in more detail below. The normal configuration of networked computer sys¬ tems, each of which incorporates the IONET channel, is illustrated in Fig. 5. Two separate computer systems, 100a and 100b, are connected for the purpose of resource sharing by the single cable 128 of the LAN 126. Each of the computer systems 100a and 100b has an IONET channel 140a and 140b, respectively,, connected to it by which to attach a plurality of I/O devices 176. The ability for any I/O device 176 attached to any particular IONET char¬ acter channel to access resources on computer systems other than the computer system to which the particular IONET channel is connected is a function of the LAN sup¬ port in the operating system software running on the com¬ puter systemsr and will be present to the degree to which that system software supports the functionality. Another beneficial advantage of the present inven¬ tion which is not specifically illustrated, but which can be understood by reference to Fig. 4, is the possibility of using the single cable 170 for achieving the func¬ tionality of both a LAN and the IONET character channel. In such a circumstance, the software within each of the computer systems 100a and 100b supports both the LAN inter-computer protocol and the IONET protocol. Thus, the single cable system is capable of handling the combined traffic of the resource sharing activities in the LAN and the peripheral I/O activities on the IONET channel. Such an arrangement will utilize more transfer bandwidth with the same number of attached I/O devices, and should be used only where the aggregate bandwidth of the cable is sufficient to handle this combined load. When the single cable is shared this provides a very eco- nomical means of interconnection. Such an arrangement requires even less cable leaving the computer system enclosure than in the separate LAN and IONET channel con¬ figuration illustrated in Fig. 5.
The preferred embodiment of the present invention has been implemented in conjunction with certain hardware components and protocol used in a LAN known as ARCNET, which is a product of the assignee. ARCNET is a trade¬ mark of the assignee hereof, and has been registered in the United States Patent and Trademark Office. There is, however, no restriction that the present invention be implemented with ARCNET LAN technology. The present invention can be implemented with any type of token pass¬ ing LAN technology. However, the present invention is described in conjunction with its preferred embodiment which utilizes ARCNET supported LAN technology.
The hardware and software components of an ARCNET LAN are commercially available and well known. The assignee hereof has published extensive information regarding its ARCNET LAN, in, among other things, the ARCNET Designer's Handbook, copyright 1983, and available from the assignee. Furthermore, the Standard Microsystems Corporation of 35 Marcus Boulevard, Hauppauge, New York 11788, has manufactured two of the significant integrated circuits which are utilized in the ARCNET LAN and in addition has published significant operating information which allows those skilled in this field to build and use the ARCNET LAN. Such descriptions can be found in the Standard Microsystems Corporation data catalogue, published in 1985, at pages 193 through 213. In view of the relatively well known and appreci¬ ated nature of the ARCNET LAN technology, the ARCNET features utilized in conjunction with the present inven¬ tion will be described below in a relatively abbreviated sense.
The ARCNET LAN is based on a token passing system. In a token passing system, each Node on the network- awaits the arrival of a unique short sequence of digital bits, i.e. a signal known as a token, from a logically adjacent upstream Node. Receipt of the token indicates that the Device at that Node is then allowed to transmit or send information over the network. The network is arranged to assure that only a single token is present on the network at a time. After sending the information, the Node sends the token to the next logically succeeding Node on the network where the procedure repeats* If a Node receives the token when it has nothing to send, it passes the token immediately. The ARCNET LAN is arranged so that only active Nodes are present on the network at any time. Thus, those Nodes which are inactive or powered off are not logically or electrically participating in the receipt and transmission of the tokens. The ARCNET network is capable of reconfiguring itself to accommodate Nodes which join the network and to eliminate Nodes which drop off of the network by dynamically adjusting the addresses of the Nodes to which the token is passed. Such changes in the activity state of Nodes may occur while the network is in operation without affecting network operation above the link level. The standard communication medium used on the ARCNET LAN is an RG-62 coaxial cable. This cable is designated 170 in Fig. 2. Other communication media may include fiber optics, free air infrared links, microwave links and shielded twisted pair cables.
Connection capabilities to the coaxial cable are simplified by the use of connectors known as "hubs". Each hub contains a plurality of ports to which media interface units known as resource interface modules or RIMs can be attached in order to communicate with each processor, or to which other links of cable are attached. A RIM is present at each Node. Hubs serve as active or passive repeaters between sections of cable and do not have any function in signal routing. A hub simply retransmits any incoming signal over each of its other ports as an outgoing signal. Hubs have also been described in the published literature relating to the ARCNET LAN, and are also available for purchase on the commercial market.
The physical topology of the ARCNET LAN is that of an unconstrained branching tree. The logical configura¬ tion of the electrical connectivity of the ARCNET LAN is that of a bus in which each transmitting Node transmits its signals to all other Nodes on the LAN. The cabling in the ARCNET LAN is bi-directional meaning that signals flow in both directions, alternately, over the cable. In terms of media access control the ARCNET LAN is a logical ring based on arithmetically ascending network RIM iden- tification values. The LAN automatically reconfigures itself to eliminate inactive Nodes from the logical ring and to add newly active Nodes to the logical ring so that the token is passed from active Node to active Node based on RIM identification numbers. Time is not wasted in transferring the tokens to Nodes which are inactive. The token may be passed from active Node to active Node with¬ out regard to the physical location or position of the Node on the network. The token passes between all the active Nodes on the network before returning to the orig- inal Node, thereby following a ring-like pattern.
The RIM serves as the physical interface means to the communication media or cable 170, both in the present invention and in a conventional ARCNET LAN. One such RIM, designated 178, is included within each POU adapter 172 and in each computer system 100a attached to the interconnection media cable 170 as is shown in Figs. 6 and 7, respectively. Each RIM 178 includes a transmitter by which to transmit or broadcast signals onto the cable 170, a receiver which receives the signals broadcast over the cable 170, a plurality of message buffers for receiving and holding the messages or signals to be transmitted and which are received over the cable 170, and the arbitration and other logic required to share the buffers between the processor to which the RIM is attached, such as the microcomputer 180 shown in Fig. 6, or the control processor 102 shown in Fig. 7, and accomplish its other functions. The RIM uses base band signaling over the interconnect cable 170. The RIM 178 is transformer coupled to the interconnect cable 170, which allows it to be powered on and off while the LAN is in operation with minimum impact on the operation of the network and no impact in terms of degrading network per¬ formance when the RIM is powered off. Each RIM is assigned a physical address, often referred to as a RIM ID. This address is used to accomplish the token pass- ing.
In addition to the RIM 178, each POU adapter 172 includes a microcomputer 180 and a device interface 182, as shown in Fig. 6. The microcomputer 180 has sufficient computing power to handle the necessary data rate and implement the IONET channel communication and control protocol. In contrast to prior art cluster servers or other multiport adapters, the microcomputer 180 does not include operating system functionality, LAN functionality or other multiuser functionality. A substantial savings in overhead and an increase in network bandwidth is thereby obtained, as well as a considerable decrease in cost.
The microcomputer 180 might better be described as a microcontroller which contains a simple central pro- cessing unit (CPU) plus a small amount of random access memory (RAM) , a small amount of read only memory (ROM) and various I/O and timer functions on a single inte¬ grated circuit chip. The preferred embodiment uses a Hitachi HD63B01YO microcomputer which was chosen for its cost and space effectiveness. More information regarding this microcomputer can be found in the Hitachi
Microcomputer Data Book No. U71 of July 1985 at pages 358 to 405.
The device interface 182 of the POU adapter 172 is specific to the particular type of I/O device 176 attached to the POU adapter 172. For example, the device interface 182 may be an RS-232 serial interface for attaching terminals and modems, an 8-bit parallel interface for attaching low cost printers, an interface for attaching the most popular varieties of personal com- puters, or an 8-bit general purpose handshake interface for attaching some types of peripheral devices.
The point of use adapter 172 can be embedded in any particular type of Device as is illustrated in Fig. 2, or may be a separate enclosure attached at a physically close location to the device. In all cases, the interconnect cable 170 directly attaches to the POU adapter 172.
Fig. 7 illustrates the connection of a computer sys¬ tem 100a to the cable 170 of the IONET channel. The cen- tral processor 102 of the computer system is connected to the RIM 178, and the RIM is connected to the cable 170 at a node 174. By comparing Figs. 6 and 7, it can be read¬ ily understood that the IONET function of the central processor 102 is entirely similar to that function of the microcomputer 180, except that the central processor or the computer system does not interface directly with I/O devices. Thus, the central processor 102 simply supports the IONET protocol and communicates directly through the RIM over the cable 170, without requiring the use of sep- arate protocols required to obtain communication to and from channel controllers and multiDort adaDters as is com on in the prior art. Only the RIM is necessary to interface computer systems to the cable, not the complete POU adapter. If more than one IONET channel is used from a single computer system 100 (Fig. 3) more than one RIM 178 is required.
Fig. 8 illustrates a representative POU adapter 172a in greater detail. The adapter 172a supplies serial data to and receives serial data from a conventional I/O device 176a in the RS 232 format. The RIM 178 includes a hybrid circuit 190 which is electrically connected to the interconnection communica¬ tion medium or cable 170. The hybrid circuit 190 is a commercially available product and is available for sale from Centralab, Inc., 2601 South Moorland Road, P.O. Box 2145, Milwaukee, Wisconsin 53201; or from Micro Technol¬ ogy, Inc., W141 N5984 Kaul Avenue, Menomoπee Falls, Wisconsin 53051; or from Zenith CRT and Components Operations, 100 Milwaukee Avenue, Glenview, Illinois 60025. The hybrid circuit includes the transformer coupling. A clock oscillator 192 supplies clock signals to the transceiver 194. In addition to controlling the signals within the POU adapter 172a, the clock 192 also establishes synchronization with respect to the data bits appearing on the cable 170. The transceiver 194 is a commercially available item from Standard Microsystems Corporation under the designation COM 9032. The transceiver 194 contains a transmitter which supplies signals to, and a receiver which receives signals from, the hybrid circuit 190. The transceiver 194 also sup- plies clock signals to a controller 196, and to the microcomputer 180 over the conductor 198.
The controller 196 is the heart of the RIM 178. Connected to the controller 196 are a series of switches 200 by which to establish the unique RIM identification number (RIM ID). The RIM ID is synonymous with the Node on the network to which the RIM 178 is attached. The controller 196 contains a microprogrammed sequencer and all of the logic necessary to control token passing on the network and to send and receive data packets at the appropriate time. The controller 196 also establishes the network configuration and automatically reconfigures the network as new Nodes are added to or deleted from the network. The controller 196 also performs address decoding functions, cyclic redundancy checking (CRC) dur¬ ing packet generation and reception and packet acknowledgement as well as other network functions. The controller 196 is a commercially available item from Standard Microsystems Corporation under the designation COM 9026.
A standard multiplexed address/data bus 202 extends from the controller 196, and is the means by which a data and address communication interface is accomplished. A uni-directional address driver 204 and a bi-directional data transceiver 206 may also be connected to the bus 202 for the purpose of allowing the microcomputer 100 to access this bus.
An external packet buffer, random access memory (RAM) 208 is also connected to the bus 202. For purposes of the present invention, the RAM 208 should include at least 2048 of 8-bit storage locations, which is suffi- cient to hold up to 8 complete IONET packets. The RAM 208 may be accessed by both the controller 196 and the microcomputer 180. A buffer pointer 210 is provided for the purpose of identifying which of the 8 packet storage areas are to be used for transmission of packets, recep- tion of packets, and processing of packets by the mircocomputer 180. The controller 196 supplies all the signals necessary to allow arbitration of access to the RAM 208 buffer between itself and the microcomputer 180. rThe RAM 208 is a conventional digital product memory item.
The microcomputer 180 contains the necessary memory and processing capability to respond to the control information contained within the IONET protocol, for con¬ trol and byte stream data communication purposes. The microcomputer 180 functions in conjunction with the con- troller 196 and transceiver 194 to implement a trans¬ mitter state machine and a receiver state machine. The transmitter state machine controls the transmission of signals from the RIM 178 onto the cable 178. The receiver state machine controls the reception of signals from the cable 170 to the RIM 178. The information encoded into the transmitted signals and decoded from the received signals is stored in the designated areas of the packet buffer RAM 208.
The microcomputer 180 includes a parallel I/O port 212 and a serial I/O port 214. The serial I/O port 214 is connected to line drivers and receivers 216 to commu¬ nicate with the I/O device 176a, in the case of the RS-232 POU adapter 172a shown in Fig. 8. For other types of device interfaces the parallel port 212 may be used. Having described the general arrangement of compo¬ nents in the IONET channel of the present invention, the definitions set forth below can be better appreciated. These definitions relate to the more specific features of the present invention. A "Server" is a processor which simultaneously supports multiple IONET sessions with the binding between its subaddresses and its internal, func¬ tional entities capable of being assigned dynamically at session initiation. A "Client" is a POU adapter (or com¬ puter) which supports one or more IONET sessions with fixed binding between its subaddresses and its internal, functional entities. A "Device" is an entity at one end of the full-duplex communication path of an IONET ses¬ sion. The terms "Client" and "Server" are used herein as descriptive terms relating to typical usage patterns. Communication using the present invention can be estab¬ lished by pairs of Devices, whether Client: and Client, Server and Server, or Client and Server. A Device is identified by an address, which is the RIM ID of the pro¬ cessor or POU adapter associated with the Device, and a subaddress, which is the means for discriminating the source and destination Devices for each packet at each processor or POU adapter which may connect a plurality of Devices simultaneously. A "Node" refers to everything attached to the IONET channel with a RIM. A "session" is a point to point full duplex virtual circuit established between a pair of Devices. A session consists of two "half sessions". A half session is the communication link between a transmitter at one Node and the receiver of the corresponding session partner at the other Node. There are two half sessions, one in each direction, for every full session that is established.
The signals conducted over the cable 170 control communication over the network. Those signals form an IONET protocol for communication and control over the IONET channel. The IONET protocol takes advantage of the properties of the ARCNET local area network hardware, but the IONET protocol is not ARCNET specific. The IONET protocol could operate with comparable efficiency and identical functionality on any token based network, but may operate with reduced efficiency when arbitration techniques other than token passing are employed.
The preferred embodiment of the interfaces to the network is constrained only by the need to support the IONET protocol and to interface to the LAN medium which has been utilized, such as the ARCNET LAN. The IONET protocol operates independently of any particular device or any particular operating system and independently of the characteristics of any I/O channels on various com¬ puter systems.
The IONET protocol is a completely peer to peer protocol existing at the network, transport and session layers of the International Standards Organization (ISO) open system interface (OSI) reference model for communi¬ cation, which will be described below. There is no master-slave relationship between communicating entities in the establishment, maintenance or use of a session between a pair of Devices. This is in contrast to the characteristics of essentially all I/O channels where the channel controller at the host processor is the master and the fundamental controller of all communications over the channel. In the IONET protocol there is no func- tional distinction at the level of the control functions or the byte stream communication between any Devices other than as may be constrained by specific capabilities of those Devices.
The OSI model shown in Fig. 9 is useful for describing communication systems, including networks. In theory it is possible to replace the functionality of any of the layers with equivalent functionality implemented in a different manner and all of the other layers will remain unaffected and will operate properly in the sys- tern. The communication between one I/O device, 176a, and another I/O device 176b over the communication medium such as the cable 170 is described on the basis of seven layers or levels, each of which involves a certain level of functionality within the communication protocol. The lowest level is the physical layer 220.
The physical layer 220 involves the physical connec¬ tions to the communication medium 170, and the physical signaling such as voltage levels in an electrical system, optical modulation in a fiber optic system, and radio frequency modulation in a microwave system, for example. In an electrical system, the physical layer is repre¬ sented by bit streams present on the communication medium.
The next layer up is the link layer 222, sometimes called the data link layer. The data link layer 222 is the layer in which the physical delivery of raw data between Nodes on the network is accomplished. The physi¬ cal signaling protocol, including link information, syn¬ chronization information, error correction information, block sizes, framing, etc. are conducted at this level. In most networks, the link level 222 is the level at which fundamental communication errors are able to be detected and either corrected or retransmissions requested. Communication between a pair of Nodes on the network depends on compatible implementation of data link layers. In summary, the link layer establishes, main¬ tains and releases data links and is used for error detection and physical flow control.
The third layer is the network layer 224. The network layer 224 relates to the routing of information through the network, including addressing, network ini¬ tialization, error detection and recovery, and to the switching, segmenting and blocking of the information. Sometimes acknowledgement of raw delivery data is accomplished at the network level, and sometimes it is accomplished at the link level.
A communication aspect which has not been directly addressed in the OSI model in an explicit layer refers to the means by which logical arbitration of the right to transmit at the physical layer is accomplished. OSI would normally place this arbitration on the link layer 222, but sometimes it is placed elsewhere. For purposes of the present disclosure, media access control is con¬ sidered to be a link level function.
The next level up is the transport layer 226. The transport layer relates to the transparent data transfer, end-to-end control, multiplexing, mapping and the like. The data delivery implies reliable delivery, as opposed to a best effort to deliver the data which must be accounted for in the layers below the transport level. At the transport level, it is assumed that the data has been communicated in a reliable manner, and such things as the retransmission of missing data, reordering of the data delivered out of order, recovery from transmission errors, etc. has been corrected at or below the transport layer. In effect, the data input and output at the transport level 226 and in the higher levels is data which is meaningful to the computer system as opposed to raw data formatted appropriately for the network.
The fifth level is the session level 228. The ses¬ sion level 228 utilizes the delivery of information from the transport level to group pieces of data as associated with a given activity referred to as sessions. Sessions occur between two entities at various locations on the network. At a given time, single Nodes on the network may be involved in multiple sessions going to a plurality of other Nodes, and many sessions may be multiplexed over the same network. However, the session layer services provide for the end-to-end delivery of data associated with a given logical activity without interference by data from other activities. Level six is the presentation layer 230. The pre¬ sentation layer 230 relates to the interface between the session level 228 and the application level 232 at level seven. The application level 232 is where the actual data is applied to or received from the I/O device (176a or 176) at each end of the communication. The presenta¬ tion level 230 is essentially one of presenting the data in an acceptable form suitable for use in the application level 232 without having to compromise the network related integrity of the session layer 228. The presen- tation layer 230 therefore relates to data interpreta¬ tion, format and code transformation, while the applica¬ tion layer relates to user application processes and management functions.
The activities for both the LAN and the IONET chan- nel functionality discussed below exist at the session layer and below. No further discussion of the presentation and application layers is made because of the fact that these layers are strictly system, physical device and/or and user application specific.
The byte arrangement of an IONET data packet 240 is illustrated in Fig. 10, and in Fig. 11 this IONET packet is broken down into the hierarchical levels which corre¬ spond to the OSI model illustrated in Fig. 9. Not included in the IONET packet shown in Fig. 10 is an alert burst 242 which is generated in a RIM by the controller 196 (Fig. 8) to identify the beginning of a packet. The alert burst 242 consists of six sequential "1" bits, and occurs at the physical level as is shown in Fig. 11. The remaining part of the information in the physical level packet 244 is a set of 8-bit bytes containing link level information 245.
In the link level packet 245, the RIM transmits a start of heading (SOH) byte which is a character marking the beginning of an ARCNET data packet. After the SOH byte 246, the RIM transmits a source identification (SID) byte 248 indicating the RIM ID of the Node which is sending the packet. The next two following bytes are repetitions of a destination identification (DID) byte 250. The DID bytes 250 indicate the RIM ID of the Node to which this packet is addressed or destined. The DID byte appears twice for error control and reliability rea¬ sons in an ARCNET LAN. The next following byte 252 is encoded to identify the packet length (number of network level bytes), and is generally referred to in ARCNET ter¬ minology as a continuation pointer (CP) . The ending two bytes of the packet are a 16-bit cyclical redundancy check (CRC) 254. The CRC bytes 254 are employed by the RIM for purposes of detecting transmission errors.
The SOH 246 at the beginning, and the CRC 254 at the end, of the link level packet 245 are normally not con- sidered part of the ARCNET packets because they are both generated and checked by the network interface hardware (e.g., the ARCNET controller 196) and never appear in the packet buffer (RAM 208, Fig. 8) of the RIM. The remaining bytes of the header of the link level packet 245 do appear in the packet buffer, although the network hardware supplies the SID 248 on outgoing packets regard¬ less of the value in the packet buffer. The DID for each receiver will always equal the RIM ID or will be zero for broadcast packets (which are received by all Nodes). Furthermore, only one of the two DIDs 250 is stored in the packet buffer of the RIM, so only one DID 250 is a part of the ARCNET header portion 258 of the IONET packet 240. The IONET packet 240 shown in Fig. 10 follows this convention for purposes of illustration.
Normally, the typical ARCNET packet is 256 data bytes, or less, in length. However, it is also possible to communicate over the ARCNET LAN in long data packet lengths of up to 512 data bytes. In the long data packet mode, the CP 252 is 2 bytes long making the link level header six bytes in length rather than the five shown. The network level information 257 following the CP 252 and preceding the CRC 254 is information which is passed from the controller 196 (Fig. 8) up to network level interpretation within the low level software or firmware of the computer system or POU adapter. The network level packet 257 commences with a 7 byte header starting with the system code (SC) byte 256. The SC byte 256 is a common feature of all ARCNET packets and indicates the type of packet. The system code is used to identify and distinguish different types of communication protocols which might be in use simultaneously.
When the SC 256 in the ARCNET header 258 identifies an IONET packet through the code unique to IONET packets, the following 10 bytes 260 constitute the IONET header of the IONET packet 240. The IONET header 260 provides network level and transport level information and indi¬ cates how the remaining data area 262 is to be divided between administrative information 264 and byte stream information 266.
The division of the data area 262 into the adminis¬ trative portion 264 and the byte stream portion 266 per- mits what is called out-of-bands signalling by providing a distinct separation of the administrative information used to control the I/O device and the POU adapter or report status of the I/O device or the POU adapter, from the byte stream information 266 which is used to communi- cate information to and from the I/O device. The admin¬ istrative information 264 may be supplied by, inspected by, or modified by IONET controlled components, but the
_ byte stream information 266 is always handled in a trans¬ parent manner and is therefore delivered to the destina- tion I/O device unmodified from the source value which constituted it at the time of transmission.
The first six bytes of the IONET header 260 are a part of the network packet 257. Those bytes are, in order, a transmitter status byte (TXSB) 268, a receiver status byte (RXSB) 270, a 2 byte source subaddress (SSA) 272, and a 2 byte destination subaddress (DSA) 274. The remaining 4 bytes of the IONET header 260 are contained within the transport level packet 276. The first byte of the transport level packet 276 is a byte indicating the packet function (PFN) 278. The next following byte 280 is not currently used but is reserved for future expan¬ sion. The third byte is an administrative length value (ADL or ADLNG) 282. The function of the ADL byte is to identify the length of the administrative information 264 of the data area 262. The last byte 284 is a byte stream length value (BSL or BSLNG) 284. The BSL byte 284 identifies the length of the byte stream information 266 of the data area 262. The ADL 282 and BSL 284 bytes are both employed because the combined length of the adminis- trative information 264 and the byte stream information 266 can be less than the total length of the network levei packet 257. In such cases the remaining bytes in the network level packet 257 beyond those defined for the data area 262 are not used. The length of the data area 262 may be up to 242 bytes in short packet mode or up to 497 bytes in long packet mode. When long packet mode is utilized, the CP 252 extends for 2 bytes in length and both the ARCNET header 258 and the IONET header 260 extend for one additional byte other than that illus¬ trated in Fig. 10. More details regarding the ARCNET header 258 and the IONET header 260 are illustrated by the chart shown in Fig. 12, which illustrates the name of each of the fields; within each header, the bit layout from the least signify icant bit on the right to the most significant bit on the left of each field, and summarizes the uses of each field.
The source identifier (SID) 248 in the ARCNET header 258 of each incoming packet is checked by the RIM at each receiving Node whenever a session is in progress. All packets sent by the active session partner are accepted for interpretation and processing. All packets received from the RIMs at other Nodes, except those containing certain level control functions, are discarded, and the RIM receiver is immediately re-enabled. When no session is in progress, all incoming packets are interpreted, but only those containing certain network and transport level control functions relating to establishing a session and reporting or setting parameters or statistics are accepted for processing. The destination identifier (DID) 250 of the ARCNET header 258 is either equal to the RIM ID of this node, or is zero for broadcast messages. RIMs used on the IONET channel are always configured to accept broadcasts. Only Locate commands, described below, are accepted as broadcasts by Devices. Any other broadcasts received, even if they have the IONET system code (SC) , are discarded by the Devices. The continuation pointer (CP) 252 of the ARCNET header 258 is used to determine the length of the IONET packet. The CP is one byte long for short packet mode, and contains the packet length subtracted from 259. The 5 CP is two bytes long, with the first byte set to zero, and the second byte set to the packet length subtracted from 516, for long packet mode.
The system code (SC) 256 of the ARCNET header 258 may be any particular coding to identify the IONET 10 protocol, and one exemplary coding is illustrated in Fig. 12. Incoming packets with other system codes (other, than a diagnostic system code) are discarded by all Clients and are handled by other protocol code, if at all, by all Servers. 15 The IONET header 260 is used by all the transmitter and receiver state machines to control the byte stream communication over the communication medium of the network, to direct the packet contents to the correct logical I/O device, and to determine the contents of the 20 data area 262 (Fig. 10) of the packet.
The transmitter status byte (TXSB) 268 of the IONET header 260 contains information relating to the overall usage of the IONET packet and the state of the trans¬ mitter state machine which sent the packet. As is shown 25 in Fig. 12, the immediate field (Imm.) of the TXSB byte is encoded to distinguish between immediate priority packets (Imm.=l) and normal priority packets (lmm.=0). Packets for expedited delivery are referred to as immedi¬ ate packets. Outgoing immediate packets are transmitted 30. ahead of pending normal priority packets, and incoming immediate packets are processed as soon as they are received, ahead of any normal priority packets waiting in receive buffers and (typically) ahead of the rest of the normal priority packet in progress (if any) when the 5 immediate packet arrived.
The operation field of the TXSB contains a code for the transport level usage to be made of the IONET packet. The transport level uses which may be encoded in the operation field are: NOP, used for keep alive messages; IDLE, which indicates a transmitter waiting (TW) state; DATAF, which indicates a transmitter active (TA) or imme¬ diate transmitter active (ITA) state on the final (or only) packet in the transmission group, where the PFN 278 field controls the usage of the data area; DATAI, which indicates a TA state on initial or intermediate packets in the transmission group, where the PFN 278 field con¬ trols the usage of the data area; CONTROL COMMAND which is further encoded in the function field of the TXSB byte; and CONTROL REPLY which is further encoded in the function field of the TXSB byte. The sequence number or function field of the TXSB byte 268 contains the sequence number of the packet being transmitted when the operation field is encoded for all functions except CONTROL COMMAND and CONTROL REPLY func¬ tions. When the operation field is encoded for CONTROL COMMAND or CONTROL REPLY, the control function is encoded in the function field of the TXSB as is shown in the fol¬ lowing chart:
CONTROL RCVD COMMAND IIEPLY FUNCTION BY TXSB PFN LNG TXSB PFN LNG MODE SESSION
Forward S El 00 40 Fl 00 15 I 0
Connect A E2 00 48 F2 00 20 I 0
Redirect A E3 00 17 F3 00 15 I I
Disconnect A E4 00 14 F4 00 15 I I
Report Device Parameters A E5 00 14 F5 00 52 I E
Report Statistics A E6 00 14 F6 00 33+ I E
Report
Interface
Parameters C E7/67 00 14 F7/77 00 16+ E E
Set Device Parameters C E8 00 43 F8 00 15 I E*
Set Interface Parameters c E9/69 00 15+ F9/79 00 15 E E**
Locate A EA 00 27 PA 00 15 I E
Resynchronize A EB 00 14 FB 00 15 I I
Flush Buffers A Cp 81 14 None — — I I
Run Extended Diagnostics C 4n/Cp 82 14+ n/Cp C2 15+ E I
Report Status c 4n/Cp 83 14 4n/Cp C3 20+ E I
DATAFn A 4n/Cp 00 15+ None — — Ξ I
DATAIn A 5n 00 15+ None — — N I
IDLEn A 2n 00 10/14 None — — N I
NOPx A 8x/0x XX 10/14 None — E I
This command is only accepted when the config¬ uration lock is not set.
This command is only accepted from other than the session partner when the configuration lock is not set. Referring to the chart above, a CONTROL COMMAND is present in the operation field of the TXSB 263 when the TXSB value begins with "E" or "6" on the chart. The function achieved by the particular CONTROL COMMAND is indicated in the "Control Function" column. Data func¬ tions encoded in the operation field of the TXSB are indicated by TXSB values which begin with "4", "5" or "C". These five functions, final data transfer (DATAF), initial/intermediate data transfer (DATAI), flush buffers, run extended diagnostics, and report status, are encoded into the type code field of the PFN byte 278 in - addition to the TXSB. The "LNG" field shows the length required or allowed for each type of control function. The "Received By" column indicates the class of Device, either Clients (C) , Servers (S) or both (A), which may receive each type of IONET packet. The "Session" column indicates whether the command is accepted either in and out of session, indicated by "E", or whether the command is accepted only in out of session indicated by "0", or whether the command is accepted only when in session, indicated by "I". The "Mode" column indicates whether the packet must be sent as an immediate packet, indicated by "I", whether the packet must be sent as a normal pri¬ ority packet, indicated by "N", or whether the packet may be sent in either normal or immediate mode, indicated by "E". In the cases of almost all control functions, a reply packet is generated by the recipient Device and is sent back to the Device which sent the original control command. The TXSB, PFN, and LNG columns under "Reply" provide the control encodings and lengths for the CONTROL REPLY functions sent in response to the various CONTROL COMMANDS.
The receiver status byte RXSB 270 of the IONET header contains information relating to the state of the receiver state machine at the Device which transmitted the packet. The high order bit or immediate field is set to distinguish between acknowledgements of immediate packets and normal packets. The acknowledgement field (ACK) encodes the acknowledgement to the last packet received by the Device by sending codes such as, NOP; BUSY, which indicates a receiver waiting (RW); or an immediate receiver waiting (IRW) state; and READY, which indicates a receiver active (RA) or an immediate receiver active (IRA) state. The fault field is set =1 in Clients if a detectable internal fault condition local to the Client hardware or firmware has occurred, and is set to zero otherwise. Servers always set the fault field to zero. The sequence number field contains the sequence number of the packet being acknowledged.
The source subaddress (SSA) 272 of the IONET header identifies the specific source Device at the Node from which the packet is sent. The destination subaddress (DSA) 274 identifies a specific destination Device at the Node which is receiving this packet.
The packet function PFN 278 defines the usage of the data area 262 (Fig. 10) of the IONET packet in cases where the TXSB indicates that this is a "data" packet by an operation code of "DATAI" or "DATAF". The type code field of the PFN 278 encodes general usage of the packet to indicate a data transfer, where the data area contains byte stream and administrative data for use by the I/O device; or a Client control command, where the data area contains control information for use by the Client firmware; or a Client control reply, where the data area contains control information sent in reply to a control request.
The bits designated ASL and ADL of the PFN 278 are used to hold the most significant bits of the length values in the ADLNG 282 and BSLNG 284 bytes described below. The function code field of the PFN 278 is always set to zero for data transfer functions. For Client control commands and Client control replies the Client function is encoded to indicate the flush buffers, run extended diagnostics, and report status functions previously iden¬ tified in the above chart. The address length (ADLNG) 282 and byte stream length (BSLNG) 284 bytes form a data area descripter. The data area descripter defines the usage of the data area 262 (Fig. 10) of the IONET packet. The value within the ADLNG field 282 specifies the length of the adminis- trative information 264 (Fig. 10). If the administrative information length is not zero, the administrative data begins immediately after the data area descripter 282 and 284 and extends for the specified number of bytes. Bit 4 of the PFN byte 278 serves as the most significant bit of the ADLNG 282 byte to allow for ADLNG values greater than 255 for use with long packet mode.
The number encoded in the BSLNG field 284 specifies the length of the byte stream information portion 266 (Fig. 10) of the data area 262. If the value within the BSLNG byte is not zero, the byte stream area begins at the byte following the administrative area, or follows the data area descripter 282 and 284 if the ADLNG field 282 is zero. The byte stream information extends for the number of bytes specified in the field 284. Bit 5 of the PFN byte 278 serves as the most significant bit of the length value specified in the BSLNG field 284 to allow for BSLNG values greater than 255 for use with long packet mode.
The most frequent packets sent over the IONET chan-r nel are those which transfer byte stream data for use by the destination I/O device. Control function packets are those whose contents are interpreted within the support software or firmware of the IONET Server or IONET Client, and are not seen by the I/O device. The IONET control function packets are those identified in the above chart- and are identified in the TXSB 268, as described in conjunction with Fig. 12. The IONET control function commands and replies are available at several levels. Network level control func¬ tions relate to Nodes on the IONET channel and are inde¬ pendent of session activity. Transport level control functions are used to establish, control and terminate sessions. Session level control functions are used to control the interface to the I/O device and are only useable when a session is in progress, with the excep¬ tions noted. Session level byte stream functions trans- fer data, control and status information to and from the attached I/O devices.
Control command messages are always sent using short IONET packets. All CONTROL COMMANDS require the recipi¬ ent thereof to send back a CONTROL REPLY packet. Thus, control functions involve a distinctive handshake between the transmitter state machines of the two communicating devices. This handshake does not involve the receiver state machines. The generalized details applicable to each CONTROL COMMAND and CONTROL REPLY follows. The positive acknowledgement of a CONTROL COMMAND in the form of a CONTROL REPLY packet is always required, independent of the transmit packet count. No further transmissions (other than retries) are made until the corresponding CONTROL REPLY has been received. Sequence numbering is neither required nor used for control func¬ tion packets. Control function acceptance is encoded in a completion code byte which appears as the first byte of administrative data in all CONTROL REPLY packets. Exemplary types of completion code values which are encoded into the administrative area 264 of the data area 262 of each IONET packet 240 which transmits the control reply may be as follows, among others: Successful com¬ pletion of the control function; the control function is not supported by the destination Device; the control function is rejected due to the state of the receiver; the control function is rejected because the Device is not in session; the control function is rejected because the Device is already in session; the control function is rejected because a configuration lock associated with the Device is set; and there is a specification error in the CONTROL COMMAND parameter(s) .
As is seen in the above chart, the network level control functions include report device parameters, report statistics, report interface parameters, set device parameters, set interface parameters, and locate. There is also a null function, not shown in the above chart, which is ignored by the recip-ient without generating either an error nor a reply. These network level control functions are accepted by the IONET Nodes at any time, whether or not a session is in progress, These control functions do not have to originate at the SID of the active session partner to be accepted during at- session.
The report device parameters CONTROL COMMAND causes the IONET Device to generate a CONTROL REPLY packet containing information on the type and status of the I/O device. The report device parameters command is recog¬ nized by all Devices, is accepted whether or not a ses¬ sion is in progress, and is accepted from any source when the Device is in session, not just from the session part- ner. Some of the information being reported relates to attributes of the Node. This information is reported on a uniform basis for all Devices. The report device parameters command is not accepted from broadcast packets due to the large amount of network traffic which would be generated, the lack of a broadcast capability which refers to subaddresses, and the inability to determine if responses have been received from all devices. The report device parameters command is sent as an immediate packet. The format of the CONTROL REPLY packet transmitted in response to a report device parameters CONTROL COMMAND ay advantageously include in the administrative informa¬ tion section 264 of the data area 262 (Fig. 10): an indi¬ cation of the completion code described above, type code used to identify Clients or Servers and the type of I/O device interface 182 (Fig. 6) associated with the Device, a packet length and transmit packet count which indicates the maximum number of DATAI packets allowed before a DATAF packet is required, and a session initiation type byte. The session initiation type byte indicates a li i- tation on an IONET Device which limits its communication to predetermined Clients or Servers in a predetermined session. This type of restricted communication capabil¬ ity is advantageously employed for the purpose of limiting access to certain Devices and requiring certain levels of security in order to obtain communication between particular Devices.
The report statistics CONTROL COMMAND causes the Device to which the command is addressed to generate a CONTROL REPLY packet containing statistics information gathered by the Device. This command is recognized by all Nodes at subaddress zero, and may be recognized by all Devices. This command is accepted whether or not a session is in progress, and is accepted from any source when the Device is in session, not just from the session partner.
Some of the information being reported relates to attributes of the Node, and is reported in the same form for all Devices at that Node. This command is not accepted from broadcast packets due to the large amount of network traffic which would be generated, the lack of a broadcast capability which refers to subaddresses, and the inability to determine if all responses have been received. This command is sent as an immediate packet. The report interface parameters CONTROL COMMAND causes the Client Device to generate a CONTROL REPLY packet containing information on interface status and related modal state of the Device. The information is reported from the set of parameters stored in RAM memory associated with the Device and currently in use by the Device. These values may vary from the parameter values stored in non-volatile memory in the Client under certain conditions. This command is recognized by all Clients in a Device specific manner, is rejected by all Servers, is accepted by Clients whether or not a session is in prog¬ ress, and is accepted from any source when the Client Device is in session, not just from the session partner. The report interface parameters command must be sent in an immediate packet by Devices other than the session partner, and may be sent in either the normal or immedi¬ ate packet form by the session partner. Certain bytes in the administrative information 264 of the data area 262 (Fig. 10) of the IONET packet may be devoted to communicating values which are different than those parameters stored in RAM memory.
The set device parameters CONTROL COMMAND causes the. Client Device to store new values into its non-volatile memory. This command is only accepted by Client Devices and only when the configuration lock is not set in which case the command is accepted from any source, not just the session partner (if any). This command must be sent as an immediate packet.
Additional information contained within the adminis¬ trative information section of the data area of the IONET packet can include bytes which identify external equip¬ ment type, a Device name, the session initiation type of the Device, the type specific service class of the
Device, the identification of a predetermined partner or remote session password, and the configuration lock status.
The set interface parameters CONTROL COMMAND causes the Client Device to set new values for interface control and the related modal state. The new values are aDDlied to the interface and are stored in RAM within the Client. These values may also be stored in non-volatile memory within the Client. This command may also be used to recall the values from non-volatile memory into RAM. The set interface parameters command is recognized by all Clients in a Device specific manner, is rejected by all Servers, is always accepted by Clients from the session partner and is accepted by Clients from any source whether or not in session if the configuration lock is not set.
The set interface parameters command must be sent in an immediate packet by Devices other than the session partner, and may be sent in either a normal or immediate packet by the session partner. Additional information contained in the administrative information section of the IONET packet relates to RAM or non-volatile memory control for writing parameters from the packet into RAM or into both RAM and non-volatile memory and for recalling parameters from non-volatile memory into RAM. Other information in the administrative information sec¬ tion relates to device type specific interface parameters.
The locate CONTROL COMMAND may be sent as a broadcast by Devices attempting to establish a session in order to determine the RIM identification number and subaddress of a desired destination Device attempted to be located by the use of a name assigned to it. If mul¬ tiple replies are received all but the first of these replies is ignored. The locate command is recognized by all Nodes at subaddress zero, is accepted whether or not a session is in progress, and is accepted from any source when the Device is in session, not just the session part¬ ner. The locate command is the only control command function accepted from broadcast packets. A locate command must be directed to subaddress zero of the destination. The source subaddress of the control -il -l-
reply packet identifies the specific Device at the responding Node which has been located by transmitting its identification number. If multiple Devices at the responding Node match the specified name, then multiple reply packets are generated. If no Devices at Nodes receiving the locate packet match the specified name then no reply is generated.
The expiration of a timeout interval while waiting for a reply to a locate command is an indication that no active Device has a matching name. The locate command must be sent as an- immediate packet. The name of the responding Node in encoded in the administrative informa¬ tion section of the IONET packet. The locate packet also contains a desired service class. If this value is zero, only the name must match, otherwise both the name and service class must match. The completion code in the reply to a locate command distinguishes between the case where a Device is able to accept a connect command for the specified service class, and the case where the Device cannot accept such a connect command.
As shown in the above chart, the transport level control command functions include connect, forward, dis¬ connect, redirect and resynchronize.
The connect CONTROL COMMAND establishes a session, if none is in progress and is rejected if received when a session is in progress. Either Clients or Servers can initiate the session by sending the connect control command. Connect requests to Servers should generally be sent to the subaddress returned by the locate command for the desired session partner's name (or to subaddress zero). The Server may redirect session communication to a different subaddress by sending an appropriate value for the source subaddress (SSA) 272 (Fig. 12) field of the reply packet. Session traffic should subsequently be directed to the destination subaddress obtained from the SSA field of the reply packet. The connect command must be sent as an immediate packet. Preferably the administrative information sec¬ tion of the connect CONTROL COMMAND packet includes information relating to the type of Device, its hardware and firmware or software revision level, its protocol version support, its maximum subaddress, its packet length and transmit packet count, its incoming transmit buffer length, its minimum incoming transmit length, the time before forcing an incoming packet to be sent by Clients, a source external equipment type, a source Device name,, a source session initiation type, source service class, and a session initiation password.
If the connect command is accepted, a CONTROL REPLY packet is generated whether or not the connection request is successful. If the completion code field contains an indication that the session has not been successfully established, the completion code specifies the reason for the failure. Some of the reasons which may be specified in the completion code for the failure to successfully establish the session are the control function has been rejected because the Device is already in session, there is a specification error in the control function parameters, the replying Device does not support the par¬ ticular protocol version or the hardware revision level or the firmware or software revision level requested, the Device is in an unavailable service class, the Device is not configured for remote initiation, or there may be a remote password or name mismatch. In addition, the other administrative information in the CONTROL REPLY packet may relate to the protocol version to use, the packet length to use, the transmit packet count to use, the incoming transmit buffer length, the minimum incoming transmit length, and the time before forcing the sending of an incoming packet. The forward CONTROL COMMAND configures a Server Device to be a packet forwarder for inter-network linkage. Once the forwarding is established, the Device neither interprets nor acknowledges IONET packets, but simply forwards them in both directions to the estab¬ lished link. Since it is not possible to communicate with a forwarding Device, all configuration in this
Device must be done prior to sending the forward command. The forwarding Device does not operate transport control state machines, but does monitor the reverse channel for a disconnect CONTROL REPLY code to know when to terminate forwarding. To avoid loss of resources when communica¬ tion is lost in a disorderly manner, forwarding is termi¬ nated, and the Device goes into an unconnected state, iξ no communication is received in either direction for a timeout interval specified in the forward command which established the link.
Forward requests should generally be sent to subaddress zero. The forwarder may redirect communica¬ tion to a different subaddress by setting an appropriate value for the SSA field 272 (Fig. 12) of the reply packet. Communication should subsequently be directed to the destination subaddress obtained from the SSA field <s£ the reply packet.
The forward command is rejected if received when a session is in progress. Devices which are not able to function as packet forwarders (including all Clients) always reject this command. Either Clients or Servers can initiate forwarding by sending a forward command. The forward command must be sent as an immediate packet. The administrative information section of the forward IONET packet preferably includes the name of the destina¬ tion network, the name of the desired destination device, the desired class of service, and the connection timeout periods.
The destination Device of the forward command accomplishes a locate function on the destination network for the designated destination device to determine the RIM ID and the subaddress to which communications should be forwarded.
If the forward command is accepted, the reply packet is generated whether or not the forwarding request is successful. If the completion code field contains any code indicating that the forwarding has not been success¬ fully established, the completion code specifies the rea¬ son for the failure. The reasons for the failure may be the same as those which have previously been described. A disconnect CONTROL COMMAND terminates a session. The disconnect command is rejected if no session is in progress. Either Clients or Servers can initiate a dis¬ connect command. The disconnect command must be sent as an immediate packet. A redirect CONTROL COMMAND is sent simultaneously to the session partners of two active sessions from a Node which desires to redirect traffic of those two sessions so that the partners in these sessions communicate with each other and no longer with the Node sending the redirect command. This command must be sent in an imme¬ diate packet. The administrative information section of the redirect packet includes the new destination identi¬ fication and the new destination subaddress. The comple¬ tion of a redirect command involves resynchronization, as described below.
A resynchronize CONTROL COMMAND causes the trans¬ mitter and receiver state machines at each end of a ses¬ sion to reset to their state upon establishment of a ses¬ sion. This allows communication to be re-established without disconnection and reconnection in cases where sequence number or other synchronization between the two devices has been lost.
Either Clients or Servers can send a resynchronize command when a session is in progress. The resynchronize command is rejected if no session is in progress. The resynchronize command must be sent as an immediate packet. The session level control functions include flush buffers, run extended diagnostics, and report status. These session level control functions are interpreted by the interface control firmware in Clients. These control functions are not supported by Servers, with the excep¬ tion of the flush buffers function. The details of most of these commands are Client-type specific, and only their common aspects are discussed below. Note that these session level control functions are sent in packets whose TXSB values indicate data transfer (DATAF) , but whose PFN values indicate client control request and client control reply.
The flush buffers control function causes the recip¬ ient to discard any packets or partial packets present in receive buffers within the POU adapter or low level software. The flush buffers command is accepted by any Device with a session in progress, and is ignored when no session is in progress. The flush buffers command is sent as an immediate packet, The run extended diagnostics control function causes' the Device to perform diagnostic functions and report on their results. These diagnostic functions may be identi¬ cal to those performed by default at power on, or may be extensive or specialized tests. This command is recog- nized by all Clients in a type specific manner. Clients which do not implement extended diagnostic functions report a successful completion of this command. This command is recognized by all Clients, is rejected by all Servers, and is accepted only when a session is in prog- ress. The run extended diagnostics command may be sent in either a normal or immediate packet. The administra¬ tive information section of the IONET command packet may include information regarding the diagnostic parameters, and the administrative information section of the IONET reply packet includes information regarding the diagnostic results. The report status control function causes the Device to generate a reply data packet containing information on the I/O interface status of the Device. This command is recognized by all Clients in a type specific manner. This command is recognized by all Clients, is rejected by all Servers, and is accepted only when a session is in progress. The command may be sent in either a normal or an immediate packet. The minimum response in the reply IONET packet consists of standardized interface control and status discussed below in conjunction with session level byte stream functions.
The session level byte stream functions include DATAI, to transfer initial or intermediate data packets; DATAF to transfer final or only data packets; IDLE to place the receiver state machine into a stopped state; and NOP for keep-alive messages. Use of these functions is discussed below in conjunction with the transport con¬ trol state machines.
The administrative information portion of the data area of the DATAI and DATAF IONET packets is used for a standardized interface control and status facility. The advantage of a standardized control and interface facil¬ ity is that it provides a means for directly accessing Device control and status information in a manner which is independent of the physical I/O device type. The I/O . device type independence permits a single implementation of low level software at a Server to communicate with and control virtually all types of I/O devices.
The administrative data area of the DATAI and DATAF IONET packets is used to hold an input status word (ISW) which reports the state of the external interface control input signals and provides an indication of generic- ower on/off and generic ready/not-ready status; a status mask word (SMW) which selects which input status changes are of interest to the session partner and should cause reporting in this administrative data area; and an output control word (OCW) which specifies settings of external interface output control signals.
All DATAI and DATAF packets used for data transfer are interpreted as follows: if the administrative data area is null, no interface control or status changes are occurring; if there are exactly two bytes of administra¬ tive data, these bytes are the ISW; if there are exactly four bytes of administrative data, these bytes are the ISW followed by the SMW; if there are exactly six bytes of administrative data, these bytes are the ISW, the SMW and the OCW, respectively; and if there are more than six bytes of administrative data, the first six bytes are the ISW, the SMW, and the OCW, while the additional bytes are. type specific. To facilitate reporting or setting information in later words without affecting information in preceding words, the most significant bit of each ISW, SMW and OCW is a validity or enable bit. A word with its validity bit set to zero is ignored. For communication from Clients to Servers, the ISW reports external interface control input status, the SMW reports the current mask settings, and the OCW reports the current external interface control output settings. For communication from Servers to Clients the ISW is not used, the SMW is used to set the status mask value, and the OCW is used to set the external interface control outputs. For communi¬ cation from Servers to Servers, the ISW, SMW and OCW are generally not used, and for communication from Clients to Clients these three words are generally ignored. strategy available from the present invention to obtain session level security for data message communica¬ tion is based on the use of the SID to prevent a third Device from interferring with the communication between a pair of Devices participating in an IONET session. When a session is in progress, data and control packets are only accepted if their SID matches the SID of the Node which sent the original connect command function packet or which sent the reply to the original connect packet. In addition to being very simple and efficient to imple¬ ment and requiring no extra hardware, this security tech- nique provides a barrier against unauthorized communica¬ tion from the other Nodes. This occurs because the ARCNET link level hardware prevents the transmission of an SID other than its established SID.
Sessions may be established and controlled by the use of passwords and configuration locks. A password is certain information established in the memory of a device. In order to establish a session, the connect command packet must originate from a Device which has a SID which corresponds to the password or is within a group of SIDs defined by the password. All clients main¬ tain certain Device parameters in non-volatile memory. The contents of this non-volatile memory is subject to access and update by IONET control functions unless a configuration lock is set by another IONET control func- tion. Once the configuration lock is set no changes may be made to the contents of the non-volatile memory until the configuration lock is cleared by human action accomplished at the Device, for example, operating a switch. Setting the configuration lock allows the Device configuration to be protected from unauthorized modifica¬ tion.
Clients can be configured for remote session initiation, in which case a Server must initiate the ses¬ sion. By protecting the configuration information file(s) at the relevant Server(s), users can be restricted from altering the location and/or the charac¬ teristics of the task which will initiate the session. Clients can be configured for predetermined session initiation, in which case the session partner is identi- fied and fixed in the non-volatile memory of the Client. The configuration lock is set to prevent the user and the application hardware from changing the session initiation type and session partner. Because Clients configured for predefined sessions do not accept messages or session partner identifications from the user, predefined ses- sions provide the appearance of a direct, dedicated con¬ nection between a single server and a single client despite the multicontext, multiplexed nature of the com¬ munication medium. This type of dedicated predefined point-to-point communication on a multiplexed medium is not typically available on conventional I/O channels except through the use of dedicated point-to-point single use cabling. Remote session initiation requests arriving at any Device may require a password if the session initiation type is not predefined, thereby allowing Devices to be configured to exclude unauthorizing incom¬ ing access. In the case of point of use adapters, the remote session password may not be read out or modified if the configuration lock is set.
The transport control state machines operate to pro- vide the functionality necessary for communication over the IONET communication channel, and operate in response, to the IONET protocol described above. The communication-" is a full-duplex logical link, at the session level, between pairs of communicating Devices. Each logical link involves two transmitters and two receivers, each of which is controlled by a simple state machine. Every session has an instance of both transmitter and receiver state machines operating at each Node participating in the session. The purpose of the state machines is to synchronize byte stream delivery, acknowledge successful receipt of packets, detect and re-transmit missing or lost packets, detect and ignore duplicate packets, provide periodic "keep alive" packets during intervals when no data is being communicated, provide flow control which prevents transmission of packets for which no receive buffer is available, and avoid unnecessary flow control activities by stopping communication during periods when there is no data to send and/or no buffer space to receive the data, and thereafter restarting communication when these condi- tions are remedied.
The TXSB of the IONET header communicates the state of the transmitter state machine which is sending the packet to the receiver state machine which is expected to receive the packet. The RXSB communicates the state of the receiver state machine at the Device which is sending this packet (not the receiver state machine which is receiving the packet) to the transmitter state machine at the Device which is the destination of this packet (not the transmitter state machine which is sending this packet) .
The acknowledgement to each packet appears as the RXSB of the next packet sent by the transmitter at the Device which received the packet being acknowledged. During periods of bi-directional communication this "piggybacking" arrangement of acknowledgements conserves network bandwidth. During periods of unidirectional com¬ munication, there will be no data packets going in the reverse direction; however, packets containing the acknowledgement will be generated. Whenever either the transmitter state machine or the receiver state machine has a status change to report, a packet is sent. If one of the state machines has nothing to send at that time, it reports no status using a "NOP" code in its status byte. Maximum transmit packet counts are established between session partners at the time a session is estab¬ lished. These counts, which do not have to be the same for the two communication directions, specify the maximum number of data packets which the transmitter may send without an acknowledgement from the receiver. (Command packets are always sent one at a time with replies for each command.) The transmitter must retain copies of the entire group of data packets until acknowledgement is received to allow for the possible need for retransmission. If a reception error or synchronization error occurs, this status is reported immediately. Imme¬ diate data packets and all command packets are acknowledged when received, independent of the transmit packet count. Normal priority data packets can be desig¬ nated to generate positive acknowledgement. The receiver must have sufficient buffers to hold the maximum number of unacknowledged packets before indicating to the trans¬ mitter that it is ready to receive.
The default transmit packet count is one packet, which results in positive acknowledgement of every packefc transmitted. The largest allowable transmit packet count is 15, and is limited by the use of a 4-bit sequence num¬ ber to maintain packet delivery synchronization. The transmit packet count used by any Device should not exceed a value one less than the number of packets the associated receiver state machine can buffer without having to inhibit the RIM receiver. The higher the transmit packet count, the less network bandwidth and processing time is used in sending acknowledgements, and less time must be elapse between successive transmis- sions; but a greater number of buffers must be retained by the transmitter state machines to handle the possible need for re-transmission.
The transmitter and receiver state machine operations are relatively straightforwardly implemented in either hardware or software. The software imple¬ mentation is preferable because of economics, and because a hardware implementation would result in an unacceptably large physical size for a POU adapter, for most applica¬ tions. Figs. 13 and 14 show the general state transitions in terms of what conditions move the transmitter and receiver state machines between the states. The condi¬ tions which cause the state machines to remain in the same state are characterized by either complex determina¬ tions based upon received information as shown in the following state transition table of Figs. 15, 16, 17 and 18, or by receipt of packets which are outside the protocol and are therefore ignored leaving of the machine in the same state.
Fig. 13 shows the five basic transmitter states: TA (Transmitter Active) when the transmitter has information to send and is in the process of sending or attempting to send it; TW (Transmitter Waiting) when the transmitter is able to transmit data as far as flow control is con¬ cerned, but has nothing to transmit, and therefore it is waiting on internal conditions within its node to make more data available; TS (Transmitter Stopped), indicating that the transmission has been stopped due to transport level flow control, that is a busy indication from the - receiver state machine at the opposite end of the ses- sion; ITA (Immediate mode Transmitter Active) entered from the normal mode when there are immediate packets to send; and ITS (Immediate mode Transmitter Stopped), which is equivalent to TS (Transmitter Stopped) but occurring due to transport level flow control while in immediate mode. The drop back from the immediate mode to the nor¬ mal mode is implicit as soon as all the immediate packets have been sent. The state indicated as "Out of Session" is not strictly speaking a state, but rather a condition where the state machine does not operate because no ses- sion is in progress. The Out of Session condition is entered after reset of the channel or the Node, as well as a result of the end of the session either through the disconnect control function or a time out which termi¬ nates the session. When a session is established, the transmitter state machine enters the TS (Transmitter Stopped) state because of the fact that until the receiving device has indicated it is ready to receive data, the transmitter has to assume the receiver may be busy. Accordingly, within any session, the first thing that is communicated in the ses- sion is a ready indication from the receiver to the transmitter to take the transmitter out of TS state. The remainder of the states and conditions which cause the transitions between states are understood from the diagram of Fig. 13. Fig. 14 shows the five basic receiver states: RA
(Receiver Active) when the receiver is receiving informa¬ tion; RW (Receiver Waiting) when the receiver is able to receive data as far as flow control is concerned but is not actually receiving data and therefore is waiting for the data to become available; RS (Receiver Stopped), indicating that the transmission of data has been stopped as a result of an indication from the transmitter state machine at the opposite end of this session that no fur¬ ther data needs to be sent at this time; IRA (Immediate mode Receiver Active) entered from the normal mode when there are immediate packets to be received; and IRW (Immediate mode Receiver Waiting), which is the equiva¬ lent to RW (Receiver Waiting) but occurring due to trans¬ port level flow control while in the immediate mode. The drop back from the immediate mode to the normal mode is implicit as soon as each immediate packet has been acknowledged. The state indicated as "Out of Session" is not strictly speaking a state, but rather a condition where the state machine does not operate because no ses- sion is in progress. The out of session condition is entered after a reset of the IONET channel or the Node, as well as a result of the end of session either through the disconnect control function or timeout which termi¬ nates the session. With respect to the receiver state machine diagram shown in Fig. 14, the states and the number and direction of transition conditions linking the states is identical to the transmitter state machine diagram of Fig. 13, except the transition from out of session state goes to the RW (Receiver Waiting) state rather than the RS (Receiver Stop) state on the establishment of a session. Note the pairings of states shown in Figs. 13 and 14. Ordinarily, TA and RA are a pair for dealing with active communication. If the transmitter has nothing more to send, it indicates idle and goes to the TW state. The idle message from the transmitter places the receiver in the RS state. The receiver will be removed from the RS state by the transmitter becoming active again, which is a transition from TW back to TA. If the receiver runs out of buffers to hold incoming data, it indicates a not ready condition, going from RA to RW. This moves the transmitter into the TS state. What gets the transmitter out of the TS state is a ready indication from the receiver, which occurs when the receiver transitions- from RW back to RA when free buffers are again available. When active communication is going on, both the trans¬ mitter and the receiver are in their active states, TA and RA. If the transmission has been suspended because the transmitter has nothing more to send, the transmitter is in TW and the receiver is in RS, whereas if the trans- mission has been stopped because the receiver has no space to put any more data, the receiver is in RW and the transmitter is in TS.
More specific details on the operation of the trans¬ mitter and receiver state machines are discussed below and in conjunction with Figs. 15, 16, 17 and 18.
The transmitter state machine handles all outgoing packets for a given device, provides the transmitter status byte TXSB for all packets it handles, generates sequence numbers for outgoing data packets, matches acknowledgements to packets which have been sent, retransmits unacknowledged packets after a timeout has expired, generates keep-alive packets at predetermined time intervals during periods when no outgoing data is available, and breaks the connection if more than a greater second predetermined time period elapses without a status reply from the corresponding receiver state machine.
The normal mode transmitter states are shown in Fig. 15. The states are Transmitter Active (TA) , entered when there is outgoing data to transmit and when the trans- mitter is awaiting the acknowledgement for transmitted packet(s); Transmitter Waiting (TW) , entered when the last transmitted packet has been acknowledged and no fur¬ ther outgoing data is available; and Transmitter Stopped (TS), entered when the receiver has halted communication because no receive buffer space is available. The trans¬ mission of normal packets and of immediate packets are treated as independent activities. There is a semi- independent transmitter state machine for immediate packets, shown in Fig. 16, using ITA and ITS transmitter states. After reset, as well as when no immediate packet is pending or awaiting acknowledgement, the transmitter state machine is in normal mode, and uses TA, TW, and TS. When presented with an immediate packet to transmit while in normal mode the transmitter state machine enters immediate mode in an ITA state and sends the packet.
Once the immediate mode is entered the transmitter state machine remains in immediate mode until all pending imme¬ diate packets have been sent and acknowledged. At this time the transmitter state machine returns to normal mode in whatever state was active at the time the first imme¬ diate packet was presented.
Because of the simultaneous operation of a trans¬ mitter state machine and a receiver state machine at the two ends of each direction of each session, packets relating to normal priority activities may arrive at a transmitter state machine while processing of an immediate packet is in progress. These receptions are handled based on the state of the normal mode trans¬ mitter, although no other normal mode operations occur until immediate mode processing has been completed. The transmitter state machine expects positive acknowledgement for every immediate packet, independent of the value specified for the transmit packet count.
Several integer values are maintained by the trans¬ mitter state machine to track message sequence and detect missing and/or duplicated packets. These include n, which represents the current sequence number used for transmission of normal priority packets; m, which represents the highest (normal prior¬ ity) message sequence number for which the 'corre- sponding receiver state machine has acknowledged successful reception; p, which represents the current sequence number used for transmission of immediate packets; t, which represents the transmit packet count in use for this direction of the active session; and x, which represents a value in the range 0 to 15.
All magnitude relationships between these numbers are implemented such that the wrap-around from 15 to 0 appears to be an increase in magnitude. This is unambig¬ uous because t must be less than 16.
The transmitter state machine indicates its state transitions using an operation code and sequence number in the transmitter status byte (TXSB) of each packet it sends. Permissible operations include
DATAIn, indicating that this packet contains byte stream and/or administrative data and that this packet is an initial or intermediate packet in a group of two or more packets being transmitted with- out positive acknowledgement;
DATAFn, indicating that this packet contains byte stream and/or administrative data, that this packet is the final (or only) packet in a group, and that positive acknowledgement is required;
IDLΞn, indicating that no further data is cur- rently (temporarily) available after data packet "n-1";
NOPx, used for keep-alive messages (sequence number is ignored) ;
CONTROL COMMAND, used for functions such as Connect, Disconnect, Report Device Parameters, etc. (sequence numbering not used); and
CONTROL REPLY, used to send completion codes and reply data in response to CONTROL COMMANDS (sequence numbering not used) . The events which can cause state transitions in the transmitter state machine include
"READYn+1", which denotes receipt of a packet whose receiver status byte contains acknowledgement type RΞADYn+1, indicating that the receiver has sue-' cessfully received all packets transmitted up through DATAFn, and that the receiver has sufficient buffers available for a group of packets the length of the active transmit packet count;
"BUSYn+1", which denotes receipt of a packet whose receiver status byte contains acknowledgement type BUSYn+1, indicating that the receiver has suc¬ cessfully received all packets transmitted up through DATAFn, but that the receiver currently has no additional buffers available (or an insufficient number of buffers to accept a group of packets the length of the active transmit packet count);
"READYm+1", which denotes receipt of a packet whose receiver status byte contains acknowledgement type RΞADYm+1, indicating that the receiver state machine has successfully received all packets trans¬ mitted up through DATAFm, has not successfully received the packet transmitted with sequence number m+1, and that a retry of packet "m" (and subsequent) transmission(s) is necessary;
"Nothing Sent, Data Available", indicating that one or more new outgoing packets have been presented for transmission at a time when no data packets have been sent since the last "READYn+1", "READYm+1", or "Tl" event;
"DATAIn Sent, More Data Available", indicating that one or more additional outgoing packets are awaiting transmission at a time when at least one DATAIn packet has been sent since the last "RΞADYn+1", "READYm+1", or "Tl" event;
"Tl", which denotes expiration of the timeout interval relating to retries and keep-alives, this timeout is reset each time any packet is transmitted to the session partner; and
"T2", which denotes expiration of the timeout interval relating to loss of communication or protocol violation, this timeout is reset each time any valid packet is received from the session part¬ ner.
Due to a variety of situations, including a previous attempt to transmit a packet to a device whose RIM receiver is inhibited, there can be cases where there is a need for a transmitter state machine to send a packet when its RIM transmitter is busy. When this occurs the transmitter state machine temporarily ceases handling all events shown in its state transition table, with the exception of the "T2" timeout event. After the trans¬ mitter has become available, and been re-enabled to send the waiting transmission, any events which arrived during the period which the transmitter was busy are processed. Processing of received "NOPx" packets (to reset T2) is also deferred during periods when the transmitter is busy. Operation of the transmitter state machine in normal mode is characterized by the table shown in Fig. 15. For each box in the body of the table, items in capital let¬ ters indicate transmissions of packets with the indicated function in the transmitter status bytes, items in lowercase letters indicate internal operations within the transmitter state machine, and items beginning with a right arrow indicate the state entered upon completion of the activities in the box. Other operational characteristics of the transmitter state machine are as follows. If more than one event occurs simultaneously, the event shown in the left-most column of the table is handled first. Other events are only handled if they are still true after the initial event is handled. The Tl timeout interval varies with transmitter state as shown, the T2 timeout interval is always a fixed value greater than Tl. Receipt of any receiver status message of "NOPx" (regardless of sequence number) causes the T2 timer to be reset, but is otherwise ignored by the transmitter state machine. Transmission of a CONTROL COMMAND or a CONTROL REPLY may take place wherever "DATAFn" appears. No further transmissions take place after sending a CONTROL COMMAND until the corre¬ sponding CONTROL REPLY is received. If the Tl time interval expires while waiting for this CONTROL REPLY, the CONTROL COMMAND is re-transmitted. No acknowledgement is expected, nor required, for each CON¬ TROL REPLY. If the T2 time interval elapses without receiving a CONTROL REPLY, the CONTROL COMMAND activity (and the session, if any) is terminated. All packets received from the session partner with receiver status values other than those covered by the events defined in the state transition table are ignored by the transmitter state machine without resetting the T2 timer. This results in timeout-based session termination due to protocol violations. There are also error conditions shown on the state transition table which specify that the T2 timer should not reset. Upon the establishment of a session, or upon resynchronization, the transmitter state machine enters state TS with n:=m:=-l. Operation of the transmitter state machine in imme¬ diate mode is characterized by the table shown in Fig. 16. For each box in the body of this table items in capital letters indicate transmissions of packets with the indicated function in the transmitter status bytes, items in lowercase letter indicate internal operations within the transmitter state machine, items beginning with a right arrow indicate the state entered upon com¬ pletion of the activities in the box, and the designation "Tx" refers to the normal mode state (TA, TW, or TS) which is appropriate to enter upon termination of immedi¬ ate mode operation.
Other operational characteristics of the transmitter state machine in immediate mode are as follows. The Tl timeout interval varies with transmitter state as shown, the T2 timeout interval is always a fixed value greater than Tl. These Tl and T2 timers are the same ones used with the normal mode transmitter state machine. Receipt of any receiver status message of "NOPx" (regardless of sequence number) is causes the T2 timer to be reset, but is otherwise ignored by the transmitter state machine. Transmission of a CONTROL COMMAND or a CONTROL REPLY may take place wherever "DATAFp" appears. No further trans¬ missions take place after sending a CONTROL COMMAND until the corresponding CONTROL REPLY is received. If the Tl time interval expires while waiting for this CONTROL REPLY the CONTROL COMMAND is re-transmitted. No acknowledgement is expected, nor required, for each CON¬ TROL REPLY. If the T2 time interval elapses without receiving a CONTROL REPLY the CONTROL COMMAND activity, the session, if any, is terminated. All packets received from the session partner with receiver status values other than those covered by the events defined in the state transition table are ignored by the transmitter state machine without resetting the T2 timer. This results in timeout-based session termination due to protocol violations. There are also error conditions shown on the state transition table which specify that the T2 timer should not reset. Upon establishment of a session, or upon resynchronization, the value of p is initialized to zero. Upon entry to immediate mode, the transmitter state machine sends a DATAFp packet and enters ITA state. The value of p used for this DATAFp packet is unchanged from the previous exit from immediate mode (or resynchronization) .
The receiver state machine handles all incoming packets for a given Device, provides the receiver status byte RXSB for incorporation in all outgoing packets from this Device; generates sequence numbers for outgoing acknowledgements; retransmits free buffer available indi¬ cations if no new packets are received within a timeout interval; generates keep-alive packets at predetermined -time intervals when no free buffers are available; and breaks the connection if more than a greater second pre¬ determined time period elapses without a status reply from the corresponding transmitter state machine. The normal mode receiver states are shown in Fig. 17. The receiver states are Receiver Active (RA) , entered when there are one or more receive buffers avail¬ able; Receiver Waiting (RW) , entered when no receive buffers are available; and Receiver Stopped (RS), entered when the transmitter has halted communication because it has no outgoing data to send.
The reception of normal packets and of immediate packets are treated as independent activities. There is a semi-independent receiver state for immediate packets, r using IRA and IRW receiver states. After reset, as well as when no immediate packets have been received and not yet been acknowledged, the receiver state machine is in normal mode, and uses states RA, RW, and RS. When an immediate packet is received while in normal mode the receiver state machine enters immediate mode with IRA state and acknowledges the packet. Once immediate mode is entered the receiver state machine remains in immedi¬ ate mode (states IRA and IRW) until the received immedi¬ ate packet has been acknowledged. At this time the receiver state machine returns to normal mode in whatever state was active at the time the first immediate packet was received. Because of the simultaneous operation of a transmitter state machine and a receiver state machine at the two ends of each direction of each session, packets relating to normal priority activities may arrive at a receiver state machine while processing of an immediate packet is in progress. These receptions are handled based on the state of the normal mode receiver, although no other normal mode operations occur until immediate mode processing has been completed. This implies that there must be at least one (generally exactly one) receive buffer available when the normal mode receiver enters RW state.
The receiver state machine generates positive acknowledgement for every immediate packet, independent of the value specified for the transmit packet count. Several integer values are maintained by the receiver state machine to track message sequence and detect missing and/or duplicated packets. These include n, which represents the current sequence number used for normal priority reception; m, which represents a sequence number, associ¬ ated with a received normal priority packet, which may be earlier in sequence than n, but is within the range of the active transmit packet count. When t=l then m=(n-l), when t is greater than 1 then (n-t)is less than m is less than or equal to (n-1); p, which represents the current sequence number used for immediate packet reception; t, which represents the transmit packet count in use for this direction of the active session; and x, which represents a value in the range of 0 to 15.
All magnitude relationships between these numbers are implemented such that the wrap-around from 15 to 0 appears to be an increase in magnitude. This is unambig- uous because t must be less than 16.
The receiver state machine indicates its state tran¬ sitions using an acknowledgement code and sequence number in the receiver status byte of each packet it sends. Permissible acknowledgements include READYn, indicating that the receiver has suc¬ cessfully received all packets up through "n-1" and is capable of accepting at least the number of packets allowed by the transmit packet count;
BUSYn, indicating that the receiver has suc- cessfully received all packets up through "n-1" but currently (temporarily) has insufficient buffers available to receive the number of packets allowed by the transmit packet count; and
NOPx, used for keep-alive messages (sequence number ignored) .
The events which can cause state transitions in the receiver state machine include
"DATFn", which denotes receipt of a packet whose transmitter status byte contains function type DATAFn, indicating arrival of the next expected sequence value on the last (or only) data packet in a group of packets for which positive acknowledgement is needed;
"IDLEn", which denotes receipt of a packet whose transmitter status byte contains function type IDLEn, indicating that the transmitter currently has no additional data to send; "DATAFm", which denotes receipt of a packet whose transmitter status byte contains function type DATAFm, indicating that the transmitter state machine has not successfully received the last acknowledgement to a data packet and that a retry of that transmission (and subsequent transmissions) is occurring; (When t=l, m=(n-l), so DATAFm is equiva¬ lent to DATAFn-1. )
"DATAIn", which denotes receipt of a packet whose transmitter status byte contains function type DATAIn, indicating arrival of the next expected sequence value on an initial or intermediate data packet in a group of data packets for which acknowledgement will be generated after the entire group is received (as will be indicated by receipt of a packet with function type DATAFn); If the num¬ ber of DATAIn events since the last DATAFn event exceeds the active transmit packet count minus 1, receipt of DATAIn packet is ignored. ' "t Receive Buffers Available", indicating that at least "t" free receiver packet buffers have become available after a condition where less than "t" free receiver buffers had been available;
"T3", which denotes expiration of the timeout interval relating to retries and keep-alives, this timeout is reset each time any packet is transmitted to the session partner; and
"T2", which denotes expiration of the timeout interval relating to lost communication or protocol violation, this timeout is reset each time any valid packet is received from the session partner. Operation of the receiver state machine in normal mode is characterized by the table shown in Fig. 17. For each box in the body of the table items in capital let- ters indicate transmissions of packets with the indicated function in the receiver status bytes, items in lowercase letters indicate internal operations within the receiver state machine, and items beginning with a right arrow indicate the state entered upon completion of the activi¬ ties in the box. Other operational characteristics of the receiver state machine include: If more than one event is pending simultaneously, the one which appears the left-most column of the table is processed fully before any consid¬ eration is given to the one(s) further to the right. In most cases processing the left-most event will cause other events to no longer be pending when such processing is completed. Receipt of a CONTROL COMMAND or CONTROL REPLY packet causes the receiver state machine to reset the T2 timer and to pass the packet to the control func- tion processing facilities of the device. The receiver state machine takes no other action, and does not acknowledge CONTROL COMMANDS or each CONTROL REPLY. The T3 timeout interval varies with receiver state as shown, the T2 timeout interval is always a fixed time. Receipt of any transmitter status message of "NOPx" (regardless of sequence number) causes the T2 timer to be reset, but is otherwise ignored by the receiver state machine. All received packets from the session partner with trans¬ mitter status other than those covered by the defined events are ignored by the receiver state machine without resetting the T2 timer. This will invoke timeout-based recovery on protocol violations. There are also error conditions shown on the state transition table which specify that the T2 timer is not to be reset. Upon reset, or establishment of a session, the receiver state machine enters state RW with n:=0.
Operation of the receiver state machine in immediate mode is characterized by the table shown in Fig. 18. For each box in the body of the table items in capital let- ters indicate transmissions of packets with the indicated function in the receiver status bytes, items in lowercase letters indicate internal operations within the receiver state machine, items beginning with a right arrow indi¬ cate the state entered upon completion of the activities in the box, and the designation "Rx" refers to the normal mode state (RA, RW, or RS) which is appropriate to enter upon termination of immediate mode operation.
Other operational characteristics of the receiver state machine in immediate mode are as follows. Receipt of a CONTROL COMMAND or CONTROL REPLY packet causes the receiver state machine to reset the T2 timer and to pass the packet to the control function processing facilities of the device. The receiver state machine takes no other action, and does not acknowledge, CONTROL COMMANDS or each CONTROL REPLY. The T3 timeout interval varies with receiver state as shown, the T2 timeout interval is always fixed. These T3 and T2 timers are the same ones used on the normal mode receiver state machine. Receipt of any transmitter status message of "NOPx" (regardless of sequence number) causes the T2 timer to be reset, but is otherwise ignored by the receiver state machine. All received packets from the session partner with trans¬ mitter status other than those covered by the defined events are ignored by the receiver state machine without resetting the T2 timer. This will invoke timeout-based recover -on protocol violations. There are also error conditions shown on the state transition table which specify that the T2 timer is not to be reset. Upon establishment of a session or resynchronization, the receiver state machine is set inactive with p initialized to 0. Upon entry into immediate mode the receiver state machine enters IRA state with the value of p unchanged from the previous exit from immediate mode (or from resynchronization) .
From the foregoing descriptions of the IONET charac- ter channel in its various aspects, including the IONET protocol and the functionality of the state machine, the significance of the improvements available from the present invention should be appreciated. This descrip¬ tion, however, is of the presently preferred embodiment which should not be construed as limiting the scope of the invention beyond the lawful scope of the following claims.

Claims

ClaimsWHAT IS CLAIMED IS:
1. An I/O network channel for communicating data messages between a plurality of physically separated Devices connected to the channel, at least one of"the Devices being a computer system Device having a main mem¬ ory and a processor means, and at least one other Device including an associated I/O device by which to conduct input/output information transfers, said I/O network channel comprising: a network communication medium adapted for extending over a substantial physical distance and having a plurality of physically separated connection points for operatively connecting the Devices to the medium; an interface means for connecting each individ- ual Device to a separate connection point on the medium, the connection point and the connected Device being termed a Node; each interface device comprising means for establishing a predetermined identification number which uniquely distinguishes the particular Node to which the associated Device is connected from every other Node on the medium, transmitter means for transmitting data in messages over the medium, receiver means for receiving data messages from the medium, buffer means for holding data messages, and controller means for operatively con¬ trolling the transmitter means and the receiver means and the buffer means; the controller means operatively controlling said transmitter means to transmit link level communica- tion information as a part of each data message and to transmit physical level communication information which identifies the transmission of each data message, the link level information containing source information identifying the Node which originated the data message transmission and containing destination information iden¬ tifying the Node to which the data message is destined; the controller means further operating in response to the physical and link level information to cause the buffer means to hold only those data messages having destination information specifying the particular Node; point of use means operatively interconnecting each I/O device to a connection point on the medium and operative for communicating data between the I/O device and the medium, each Device which includes an I/O device also including a point of use means, each point of use means including one said interface means and a microcomputer means operatively connected to the interface means; and the processor means of the computer system Device and the microcomputer means of the point of use means each operatively connecting to the controller means and the buffer means of each respectively associated interface means, the processor means and the microcomputer means further operatively interpreting information held in the buffer means to control the con¬ troller means to cause the transmitter means and the receiver means to function as a transmitter state machine and a receiver state machine respectively and to achieve certain predetermined operational states and Node control functions in response to network level information contained in the data message held in the buffer means, and to accomplish predetermined data transfer and Device control functions in response to transport level informa¬ tion contained in the data message held in the buffer means, and to accomplish predetermined I/O device control functions and byte stream data communication functions within the Device in response to session level informa¬ tion contained in the data message held in the buffer means.
2. An I/O network channel as defined in claim 1 wherein: communication occurs as a result of a session consisting of two half sessions, the transmission of a data message from a first predetermined Node to a second predetermined Node establishing one half session, and the transmission of a responsive data message from the second predetermined Node to the first predetermined Node estab¬ lishing the other half session; and the microcomputer means of the point of use means and the processor means of each computer system Device further operatively controlling the interpretation of all network and transport and session level informa¬ tion contained in the data messages held in the buffer means.
3. An I/O network channel as defined in claim 2 wherein: each one half session transmission includes ordering information at the network level specifying the sequential ordering of any multiple data packets contained in each data message transmitted at the trans- port level; and each other half session transmission including acknowledgement information specifying those data packets which have been successfully received during the one half session.
4. An I/O network channel as defined in claim 3 wherein all information packets which have not been suc¬ cessfully received are retransmitted by the first prede¬ termined Node in response to the acknowledgement informa¬ tion received from the second predetermined Node.
5. An I/O network channel as defined in claim 3 wherein all information packets which have not been suc¬ cessfully received are retransmitted by the first prede¬ termined Node in response to the expiration of a prede¬ termined time period during which no acknowledgement information was received from the second predetermined Node.
6. An I/O network channel as defined in claim 2 wherein: each data message transmitted during the one half session which contains control function information causes the transmission of a data message which contains control reply information during the other half session; and the control function information and the con¬ trol reply information are interpreted only for control- ling the transmitter state machines at the first and second predetermined Nodes.
7. An I/O network channel as defined in claim 6 wherein the network level control function information includes at least one of the following: a report device parameters control command which causes the generation of control reply information containing information on the type and predetermined attributes of the I/O device associated with the Device; a report statistics control command which causes the generation of control reply information containing statistics information relating to medium com¬ munication; a report interface parameters control command which causes the generation of control reply information relating to the interface control and related modal state of the Device; a set device parameters control command which causes the Device at the second Node to store new parameter information into its memory; a set interface parameters control command which causes the Device at the second predetermined Node to set new values for interface control and the related modal state; and a locate control command which attempts to determine the predetermined identification number of a predetermined destination Device at a Node in order to establish a session.
8. An I/O network channel as defined in claim 6 wherein the transport level control function information includes at least one of the following: a connect control command which establishes a session; a forward control command which causes the Device to act as a data message forwarder for linkage with another different communication medium; a disconnect control command which terminates a session; and a redirect control command which is sent from a Node' which desires, to redirect data message transmis¬ sions; and a resynchronize control command which causes the Devices participating in the session to reset their receiver and transmitter state machines to the conditions established at the beginning of the session; and wherein: the control reply information generated in response to each of the transport level control functions indicates whether or not the transport level function has been successfully established and if not indicates the reason for any failure to be established.
9. An I/O network channel as defined in claim 6 wherein the session level control function information includes at least one of the following: a flush buffers control command which causes all previous information packets or partial packets in the buffer means of the recipient Device to be discarded; a run extended diagnostics control command which causes the Device to perform diagnostic functions and report on the results of those functions; and a report status control command which causes the Device to generate control reply information regarding the I/O interface status of the Device.
10. An I/O network channel as defined in claim 6 wherein the session level byte stream data communications functions include at least one of the following: a command to transfer the initial and interme¬ diate data packets of a data message; a command to transfer the final or only data packet of a data message; a command to place the receiver state machine in a stopped state; and a command used for communicating keep alive messages to the Device to prevent the termination of the session due to the lack of communication of other data messages.
11. An I/O network channel as defined in claim 6 wherein the control reply information contains informa¬ tion indicative of at least one of the following: successful completion of the control function; non-support of the control function by the des¬ tination Device; rejection of the control function due to the state of the receiver means at the Device; rejection of the control function because the Device is not in session; rejection of the control function because the Device is in session; rejection of the control function because a configuration lock associated with the Device is set; and rejection of the control function because there is a specification error in the control command informa¬ tion.
12. An I/O network channel as defined in claim 6 wherein the control reply information contains informa- tion at the network level which is interpreted by one of the microcomputer means or the processor means at the first predetermined Node to prohibit the transmission of data messages over the medium to the second Node until the data message can be received and held in the buffer means at the second predetermined Node.
13. An I/O network channel as defined in claim 6 wherein the microcomputer means operativly prohibits the transmission of a data message in response to any data message received unless the source information in the received data message matches the source information transmitted by the Node which established the session.
14. An I/O network channel as defined in claim 6 wherein the microcomputer means of at least one point of use means includes password information identifying the source information of each Device capable of initiating a session with the one point of use means, said microcomputer means of the one point of use means also operatively prohibits the transmission of data messages unless the source information in each data message received during one half session corresponds to source information of the Device which supplied the password information to initiate the session.
15. An I/O network channel as. defined in claim 14 wherein the microcomputer means of the one point of use means further includes lock means for preventing the password information from being changed by transmission of messages over the medium.
16. An I/O network channel as defined in claim 6 wherein the network level control information includes a locate control command which attempts to determine the predetermined identification information of a Device des¬ ignated by name in the data message transmitted.
17. An I/O network channel as defined in claim 6 wherein the transport level information includes a for¬ ward control command which causes the Device to transmit received data messages onto a different communication medium other than the one aforesaid.
18. An I/O network channel as defined in claim 6 wherein the network level control information includes immediate information causing an immediate function response upon receipt of the data message containing the immediate information.
19. An I/O network channel as defined in claim 1 wherein the transport level information contains informa¬ tion which divides the session level information into arbitrary length administrative data and byte stream data portions, and the administrative data portion contains information specifying predetermined interface control and status functions of a predetermined I/O device.
20. An I/O network channel as defined in claim 1 wherein: the controller means further operatively con¬ trolling the transmitter means to transmit data messages only in esponse to the receipt of a token message which contains destination information specifying the particu¬ lar Node and to transmit a token message containing des- tination information specifying the next sequential Node in a logical loop of Nodes on the medium after trans¬ mitting the data message.
PCT/US1987/002388 1986-12-12 1987-09-18 Input/output network for computer system WO1988004511A1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE87906702T DE3788355T2 (en) 1986-12-12 1987-09-18 INPUT / OUTPUT NETWORK FOR A COMPUTER SYSTEM.
AT87906702T ATE98079T1 (en) 1986-12-12 1987-09-18 INPUT/OUTPUT NETWORK FOR A COMPUTER SYSTEM.
JP62506109A JPH0783365B2 (en) 1986-12-12 1987-09-18 I / O network for computer system
DK444988A DK444988A (en) 1986-12-12 1988-08-09 INPUT / UDGANGSKREDSLOEB
NO883578A NO174910C (en) 1986-12-12 1988-08-12 Computer input / output network

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/941,084 US4941089A (en) 1986-12-12 1986-12-12 Input/output network for computer system
US941,084 1986-12-12

Publications (1)

Publication Number Publication Date
WO1988004511A1 true WO1988004511A1 (en) 1988-06-16

Family

ID=25475892

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1987/002388 WO1988004511A1 (en) 1986-12-12 1987-09-18 Input/output network for computer system

Country Status (9)

Country Link
US (1) US4941089A (en)
EP (1) EP0333715B1 (en)
JP (1) JPH0783365B2 (en)
KR (1) KR950014178B1 (en)
AU (1) AU614499B2 (en)
CA (1) CA1293820C (en)
DE (1) DE3788355T2 (en)
DK (1) DK444988A (en)
WO (1) WO1988004511A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0343820A2 (en) * 1988-05-26 1989-11-29 Digital Equipment Corporation Temporary state preservation for a distributed file service
EP0358293A2 (en) * 1988-09-08 1990-03-14 Digital Equipment Corporation Local area system transport
US5167035A (en) * 1988-09-08 1992-11-24 Digital Equipment Corporation Transferring messages between nodes in a network
GB2273023A (en) * 1992-11-26 1994-06-01 Kim Philip Lyon Token bus protocol

Families Citing this family (137)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4965825A (en) * 1981-11-03 1990-10-23 The Personalized Mass Media Corporation Signal processing apparatus and methods
EP0371377A3 (en) * 1988-12-01 1992-04-29 Bull HN Information Systems Inc. A distributed terminal driver protocol
US5263137A (en) * 1989-05-12 1993-11-16 Nec Corporation Syntax converting apparatus for decomposing different portions of a data string differently depending on whether a data string is an external type data string
DE3917715A1 (en) * 1989-05-31 1990-12-06 Teldix Gmbh COMPUTER SYSTEM
US5249293A (en) * 1989-06-27 1993-09-28 Digital Equipment Corporation Computer network providing transparent operation on a compute server and associated method
US5430876A (en) * 1989-06-27 1995-07-04 Digital Equipment Corporation Remote procedure callback system and method
US5317736A (en) * 1989-07-07 1994-05-31 Bowen Frederic W System for managing information using codes and coded objects
US5265261A (en) * 1989-08-14 1993-11-23 Microsoft Corporation Method and system for network communications using raw mode protocols
US5701427A (en) * 1989-09-19 1997-12-23 Digital Equipment Corp. Information transfer arrangement for distributed computer system
US5301280A (en) * 1989-10-02 1994-04-05 Data General Corporation Capability based communication protocol
JPH03123244A (en) * 1989-10-06 1991-05-27 Matsushita Electric Ind Co Ltd Communication equipment
US5247520A (en) * 1989-10-13 1993-09-21 International Business Machines Corporation Communications architecture interface
US5165022A (en) * 1989-10-23 1992-11-17 International Business Machines Corporation Channel and control unit having a first I/O program protocol for communication with a main processor and a second universal I/O program protocol for communication with a plurality of I/O adapters
US6389010B1 (en) * 1995-10-05 2002-05-14 Intermec Ip Corp. Hierarchical data collection network supporting packetized voice communications among wireless terminals and telephones
US5237693A (en) * 1990-04-04 1993-08-17 Sharp Kabushiki Kaisha System for accessing peripheral devices connected in network
US5150464A (en) * 1990-06-06 1992-09-22 Apple Computer, Inc. Local area network device startup process
JPH077975B2 (en) * 1990-08-20 1995-01-30 インターナショナル・ビジネス・マシーンズ・コーポレイション System and method for controlling data transmission
DE69132236T2 (en) * 1990-08-22 2000-11-30 Sanyo Electric Co Transmission control system
US5500860A (en) * 1991-06-14 1996-03-19 Digital Equipment Corporation Router using multiple hop redirect messages to enable bridge like data forwarding
US5420862A (en) * 1991-06-14 1995-05-30 Digital Equipment Corporation Router using remote address resolution to enable bridge like data forwarding
US5224098A (en) * 1991-07-17 1993-06-29 International Business Machines Corporation Compensation for mismatched transport protocols in a data communications network
US5247623A (en) * 1991-08-15 1993-09-21 Primax Electronics Ltd. Automatic multiple personal computer/computer printer connecting system
US5371897A (en) * 1991-08-27 1994-12-06 International Business Machines Corporation Method for requesting identification of a neighbor node in a data processing I/O system
US5317744A (en) * 1991-11-15 1994-05-31 The United States Of America As Represented By The Secretary Of The Air Force Method for configuring a computer server to operate with network operating system software to prevent memory address conflicts between workstations
US5805808A (en) * 1991-12-27 1998-09-08 Digital Equipment Corporation Real time parser for data packets in a communications network
US5351243A (en) * 1991-12-27 1994-09-27 Digital Equipment Corporation Monitor for packets on a communications network
US5446866A (en) * 1992-01-30 1995-08-29 Apple Computer, Inc. Architecture for transferring pixel streams, without control information, in a plurality of formats utilizing addressable source and destination channels associated with the source and destination components
US5502726A (en) * 1992-01-31 1996-03-26 Nellcor Incorporated Serial layered medical network
US5255268A (en) * 1992-02-04 1993-10-19 International Business Data distribution network with improved broadcast feature
JPH0564947U (en) * 1992-02-04 1993-08-27 大日本スクリーン製造株式会社 Data processing system for plate making
US5311515A (en) * 1992-02-07 1994-05-10 Sim Ware, Incorporated Method and apparatus for the control of local area network multi-station access units
US5418939A (en) * 1992-02-20 1995-05-23 International Business Machines Corporation Concurrent maintenance of degraded parallel/serial buses
FR2687878A1 (en) * 1992-02-21 1993-08-27 Bull Sa OSI TRANSPORT RELAY SYSTEM BETWEEN NETWORK IN CONNECTED MODE AND NETWORK IN NON CONNECTED MODE.
GB2264843B (en) * 1992-02-28 1995-09-20 Texas Instruments Ltd An interface device for coupling a host device having a network interface to a computer network having a predetermined communications medium
US5642515A (en) * 1992-04-17 1997-06-24 International Business Machines Corporation Network server for local and remote resources
DE69330981T2 (en) * 1992-04-20 2002-06-27 3Com Corp Device for expanding network means to remote networks
US5278834A (en) * 1992-05-26 1994-01-11 Alcatel Network Systems, Inc. Method for implementing a data communication protocol stack
EP0584027A2 (en) * 1992-08-19 1994-02-23 International Business Machines Corporation Seamless peer-to-peer communications in a layered communications architecture
US5442637A (en) * 1992-10-15 1995-08-15 At&T Corp. Reducing the complexities of the transmission control protocol for a high-speed networking environment
WO1994011802A1 (en) * 1992-11-12 1994-05-26 New Media Corporation Reconfigureable interface between a computer and peripheral devices
US5325361A (en) * 1992-12-01 1994-06-28 Legent Corporation System and method for multiplexing data transmissions
US7509270B1 (en) 1992-12-09 2009-03-24 Discovery Communications, Inc. Electronic Book having electronic commerce features
ATE219615T1 (en) 1992-12-09 2002-07-15 Discovery Communicat Inc NETWORK CONTROL FOR CABLE TELEVISION DISTRIBUTION SYSTEMS
US7835989B1 (en) 1992-12-09 2010-11-16 Discovery Communications, Inc. Electronic book alternative delivery systems
US7849393B1 (en) 1992-12-09 2010-12-07 Discovery Communications, Inc. Electronic book connection to world watch live
US7401286B1 (en) 1993-12-02 2008-07-15 Discovery Communications, Inc. Electronic book electronic links
US7336788B1 (en) * 1992-12-09 2008-02-26 Discovery Communicatoins Inc. Electronic book secure communication with home subsystem
US8073695B1 (en) 1992-12-09 2011-12-06 Adrea, LLC Electronic book with voice emulation features
US7298851B1 (en) 1992-12-09 2007-11-20 Discovery Communications, Inc. Electronic book security and copyright protection system
US5619650A (en) * 1992-12-31 1997-04-08 International Business Machines Corporation Network processor for transforming a message transported from an I/O channel to a network by adding a message identifier and then converting the message
JPH07115428A (en) * 1993-10-20 1995-05-02 Hitachi Ltd Remote power control system
US7861166B1 (en) 1993-12-02 2010-12-28 Discovery Patent Holding, Llc Resizing document pages to fit available hardware screens
US9053640B1 (en) 1993-12-02 2015-06-09 Adrea, LLC Interactive electronic book
US7865567B1 (en) 1993-12-02 2011-01-04 Discovery Patent Holdings, Llc Virtual on-demand electronic book
GB2288955A (en) * 1994-04-25 1995-11-01 Esselte Dymo Nv Communications link module
US5550848A (en) * 1994-05-13 1996-08-27 Lucent Technologies Inc. Signaling protocol for a noisy communications channel
JP3172387B2 (en) * 1994-06-01 2001-06-04 インターナショナル・ビジネス・マシーンズ・コーポレ−ション I / O communication subsystem and method
US5903566A (en) * 1994-06-24 1999-05-11 Metricom, Inc. Method for distributing program code to intelligent nodes in a wireless mesh data communication network
US5555374A (en) * 1994-08-26 1996-09-10 Systech Computer Corporation System and method for coupling a plurality of peripheral devices to a host computer through a host computer parallel port
US5588120A (en) * 1994-10-03 1996-12-24 Sanyo Electric Co., Ltd. Communication control system for transmitting, from one data processing device to another, data of different formats along with an identification of the format and its corresponding DMA controller
TW250616B (en) * 1994-11-07 1995-07-01 Discovery Communicat Inc Electronic book selection and delivery system
US5668810A (en) * 1995-04-26 1997-09-16 Scientific-Atlanta, Inc. Data transmission protocol method and apparatus
US6006017A (en) * 1995-05-02 1999-12-21 Motorola Inc. System for determining the frequency of repetitions of polling active stations relative to the polling of inactive stations
US5812776A (en) * 1995-06-07 1998-09-22 Open Market, Inc. Method of providing internet pages by mapping telephone number provided by client to URL and returning the same in a redirect command by server
US5629933A (en) * 1995-06-07 1997-05-13 International Business Machines Corporation Method and system for enhanced communication in a multisession packet based communication system
US7272639B1 (en) 1995-06-07 2007-09-18 Soverain Software Llc Internet server access control and monitoring systems
US6067407A (en) * 1995-06-30 2000-05-23 Canon Information Systems, Inc. Remote diagnosis of network device over a local area network
WO1997009799A1 (en) * 1995-09-08 1997-03-13 Next Level Communications Fttc interface circuitry as a physical layer entity
US5774670A (en) 1995-10-06 1998-06-30 Netscape Communications Corporation Persistent client state in a hypertext transfer protocol based client-server system
US5926642A (en) 1995-10-06 1999-07-20 Advanced Micro Devices, Inc. RISC86 instruction set
US5793983A (en) * 1996-01-22 1998-08-11 International Business Machines Corp. Input/output channel interface which automatically deallocates failed subchannel and re-segments data block for transmitting over a reassigned subchannel
US5778199A (en) * 1996-04-26 1998-07-07 Compaq Computer Corporation Blocking address enable signal from a device on a bus
US8229844B2 (en) 1996-06-05 2012-07-24 Fraud Control Systems.Com Corporation Method of billing a purchase made over a computer network
US7555458B1 (en) 1996-06-05 2009-06-30 Fraud Control System.Com Corporation Method of billing a purchase made over a computer network
US20030195848A1 (en) 1996-06-05 2003-10-16 David Felger Method of billing a purchase made over a computer network
US6377691B1 (en) 1996-12-09 2002-04-23 Microsoft Corporation Challenge-response authentication and key exchange for a connectionless security protocol
US5864674A (en) * 1997-01-03 1999-01-26 At&T Corp. Reconfigurable lan and method of adding clients thereto
US6229821B1 (en) * 1997-04-22 2001-05-08 At&T Corp. Serial data transmission of variable length mini packets using statistical multiplexing
US7107371B1 (en) 1997-09-22 2006-09-12 Intel Corporation Method and apparatus for providing and embedding control information in a bus system
US6108736A (en) * 1997-09-22 2000-08-22 Intel Corporation System and method of flow control for a high speed bus
US6088370A (en) 1997-09-22 2000-07-11 Intel Corporation Fast 16 bit, split transaction I/O bus
US9900305B2 (en) 1998-01-12 2018-02-20 Soverain Ip, Llc Internet server access control and monitoring systems
US6128656A (en) * 1998-09-10 2000-10-03 Cisco Technology, Inc. System for updating selected part of configuration information stored in a memory of a network element depending on status of received state variable
US6339802B1 (en) * 1999-02-19 2002-01-15 International Business Machines Corporation Computer program device and an apparatus for processing of data requests using a queued direct input-output device
JP3148733B2 (en) * 1999-02-26 2001-03-26 株式会社神戸製鋼所 Signal processing device and signal processing system
US6813240B1 (en) 1999-06-11 2004-11-02 Mci, Inc. Method of identifying low quality links in a telecommunications network
US6557038B1 (en) * 1999-06-30 2003-04-29 International Business Machines Corporation Method and apparatus for maintaining session states
JP4115060B2 (en) * 2000-02-02 2008-07-09 株式会社日立製作所 Data recovery method for information processing system and disk subsystem
US6842459B1 (en) 2000-04-19 2005-01-11 Serconet Ltd. Network combining wired and non-wired segments
US6859439B1 (en) 2000-05-12 2005-02-22 International Business Machines Corporation Partition-to-partition communication employing a single channel path with integrated channel-to-channel function
US6728772B1 (en) * 2000-05-12 2004-04-27 International Business Machines Corporation Automatic configuration of a channel-to-channel connection employing channel-to-channel functioning integrated within one or more channels of a computing environment
JP4404493B2 (en) * 2001-02-01 2010-01-27 日本電気株式会社 Computer system
US7562146B2 (en) 2003-10-10 2009-07-14 Citrix Systems, Inc. Encapsulating protocol for session persistence and reliability
US20050198379A1 (en) 2001-06-13 2005-09-08 Citrix Systems, Inc. Automatically reconnecting a client across reliable and persistent communication sessions
US20030110208A1 (en) * 2001-09-12 2003-06-12 Raqia Networks, Inc. Processing data across packet boundaries
US7581026B2 (en) * 2001-12-28 2009-08-25 Intel Corporation Communicating transaction types between agents in a computer system using packet headers including format and type fields
US7661129B2 (en) 2002-02-26 2010-02-09 Citrix Systems, Inc. Secure traversal of network components
US7984157B2 (en) 2002-02-26 2011-07-19 Citrix Systems, Inc. Persistent and reliable session securely traversing network components using an encapsulating protocol
US7542471B2 (en) 2002-10-30 2009-06-02 Citrix Systems, Inc. Method of determining path maximum transmission unit
US8270423B2 (en) 2003-07-29 2012-09-18 Citrix Systems, Inc. Systems and methods of using packet boundaries for reduction in timeout prevention
US7616638B2 (en) 2003-07-29 2009-11-10 Orbital Data Corporation Wavefront detection and disambiguation of acknowledgments
US7630305B2 (en) 2003-07-29 2009-12-08 Orbital Data Corporation TCP selective acknowledgements for communicating delivered and missed data packets
US8233392B2 (en) 2003-07-29 2012-07-31 Citrix Systems, Inc. Transaction boundary detection for reduction in timeout penalties
JP2004171379A (en) * 2002-11-21 2004-06-17 Hitachi Ltd Transmitting equipment, video camera equipment, transmitting method of transmitting equipment, and transmitting method of video camera equipment
AU2003224532A1 (en) * 2003-04-10 2004-11-01 Telefonaktiebolaget Lm Ericsson (Publ) Method and system of retransmission
US7656799B2 (en) 2003-07-29 2010-02-02 Citrix Systems, Inc. Flow control system architecture
US8432800B2 (en) 2003-07-29 2013-04-30 Citrix Systems, Inc. Systems and methods for stochastic-based quality of service
US8437284B2 (en) 2003-07-29 2013-05-07 Citrix Systems, Inc. Systems and methods for additional retransmissions of dropped packets
US8238241B2 (en) 2003-07-29 2012-08-07 Citrix Systems, Inc. Automatic detection and window virtualization for flow control
US7100002B2 (en) * 2003-09-16 2006-08-29 Denali Software, Inc. Port independent data transaction interface for multi-port devices
US7103683B2 (en) * 2003-10-27 2006-09-05 Intel Corporation Method, apparatus, system, and article of manufacture for processing control data by an offload adapter
US7890996B1 (en) 2004-02-18 2011-02-15 Teros, Inc. Using statistical analysis to generate exception rules that allow legitimate messages to pass through application proxies and gateways
US7774834B1 (en) 2004-02-18 2010-08-10 Citrix Systems, Inc. Rule generalization for web application entry point modeling
EP1713003B1 (en) * 2005-04-14 2007-11-21 Agilent Technologies, Inc. Measurement device with measurement data buffer
FR2892070B1 (en) * 2005-10-13 2009-05-01 Comm Materiel Aeronautiquesicm AIRCRAFT SEAT WITH DISTRIBUTED CONTROL ARCHITECTURE
US8693308B2 (en) 2006-02-10 2014-04-08 Aviat U.S., Inc. System and method for resilient wireless packet communications
US7706266B2 (en) * 2007-03-12 2010-04-27 Citrix Systems, Inc. Systems and methods of providing proxy-based quality of service
US8717910B2 (en) * 2007-04-26 2014-05-06 Cisco Technology, Inc. Field modulation for transfer and measurement of flow statistics
US7756029B2 (en) * 2007-05-24 2010-07-13 Harris Stratex Networks Operating Corporation Dynamic load balancing for layer-2 link aggregation
US8264953B2 (en) * 2007-09-06 2012-09-11 Harris Stratex Networks, Inc. Resilient data communications with physical layer link aggregation, extended failure detection and load balancing
US8908700B2 (en) * 2007-09-07 2014-12-09 Citrix Systems, Inc. Systems and methods for bridging a WAN accelerator with a security gateway
US8149431B2 (en) 2008-11-07 2012-04-03 Citrix Systems, Inc. Systems and methods for managing printer settings in a networked computing environment
US20110213897A1 (en) * 2010-02-26 2011-09-01 Qualcomm Incorporated Systems and methods for releasing stale connection contexts
US20110282980A1 (en) * 2010-05-11 2011-11-17 Udaya Kumar Dynamic protection of a resource during sudden surges in traffic
CN103081540A (en) * 2010-12-28 2013-05-01 三洋电机株式会社 Wireless device
US9713093B2 (en) 2011-02-10 2017-07-18 Mediatek Inc. Wireless communication device
US9258030B2 (en) * 2011-02-10 2016-02-09 Mediatek Inc. Wireless communication device
US9369172B2 (en) 2011-02-10 2016-06-14 Mediatek Inc. Wireless communication device
US20120268288A1 (en) * 2011-04-21 2012-10-25 Baker Hughes Incorporated Arcnet use in downhole equipment
EP2725868B1 (en) * 2012-10-24 2017-10-04 BlackBerry Limited System and method for controlling connection timeout in a communication network
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US10019580B2 (en) 2015-11-19 2018-07-10 Federal Reserve Bank Of Philadelphia Integrity checking for computing devices
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US10154067B2 (en) * 2017-02-10 2018-12-11 Edgewise Networks, Inc. Network application security policy enforcement
US10439985B2 (en) 2017-02-15 2019-10-08 Edgewise Networks, Inc. Network application security policy generation
WO2019094655A1 (en) 2017-11-10 2019-05-16 Edgewise Networks, Inc. Automated load balancer discovery
CN114422393B (en) * 2021-12-28 2023-06-13 中国信息通信研究院 Method and device for determining lossless network performance, electronic equipment and storage medium

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4423414A (en) * 1981-08-27 1983-12-27 Burroughs Corporation System and method for name-lookup in a local area network data communication system
US4495493A (en) * 1981-04-15 1985-01-22 U.S. Philips Corporation Method of controlling the transmission/reception of data in a local communication network, and data transmission system for performing the method
US4549297A (en) * 1982-03-08 1985-10-22 Fuji Xerox Co., Ltd. Data retransmitting system
US4574284A (en) * 1983-01-26 1986-03-04 Trw Inc. Communication bus interface unit
US4680581A (en) * 1985-03-28 1987-07-14 Honeywell Inc. Local area network special function frames
US4692918A (en) * 1984-12-17 1987-09-08 At&T Bell Laboratories Reliable local data network arrangement
US4706080A (en) * 1985-08-26 1987-11-10 Bell Communications Research, Inc. Interconnection of broadcast networks

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU1929483A (en) * 1982-09-30 1984-04-05 Honeywell Information Systems Incorp. High speed serial bus

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4495493A (en) * 1981-04-15 1985-01-22 U.S. Philips Corporation Method of controlling the transmission/reception of data in a local communication network, and data transmission system for performing the method
US4423414A (en) * 1981-08-27 1983-12-27 Burroughs Corporation System and method for name-lookup in a local area network data communication system
US4549297A (en) * 1982-03-08 1985-10-22 Fuji Xerox Co., Ltd. Data retransmitting system
US4574284A (en) * 1983-01-26 1986-03-04 Trw Inc. Communication bus interface unit
US4692918A (en) * 1984-12-17 1987-09-08 At&T Bell Laboratories Reliable local data network arrangement
US4680581A (en) * 1985-03-28 1987-07-14 Honeywell Inc. Local area network special function frames
US4706080A (en) * 1985-08-26 1987-11-10 Bell Communications Research, Inc. Interconnection of broadcast networks

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0343820A2 (en) * 1988-05-26 1989-11-29 Digital Equipment Corporation Temporary state preservation for a distributed file service
EP0343820A3 (en) * 1988-05-26 1991-12-18 Digital Equipment Corporation Temporary state preservation for a distributed file service
US5530905A (en) * 1988-05-26 1996-06-25 Digital Equipment Corporation Temporary state preservation for a distributed file service which purges virtual circuit control information after expiration of time limit of inactivity
EP0358293A2 (en) * 1988-09-08 1990-03-14 Digital Equipment Corporation Local area system transport
EP0358293A3 (en) * 1988-09-08 1992-01-08 Digital Equipment Corporation Local area system transport
US5167035A (en) * 1988-09-08 1992-11-24 Digital Equipment Corporation Transferring messages between nodes in a network
US6219712B1 (en) 1988-09-08 2001-04-17 Cabletron Systems, Inc. Congestion control in a network
GB2273023A (en) * 1992-11-26 1994-06-01 Kim Philip Lyon Token bus protocol
GB2273023B (en) * 1992-11-26 1996-05-22 Kim Philip Lyon Token bus protocol number 1

Also Published As

Publication number Publication date
KR950014178B1 (en) 1995-11-22
JPH02501787A (en) 1990-06-14
EP0333715A1 (en) 1989-09-27
EP0333715B1 (en) 1993-12-01
EP0333715A4 (en) 1991-01-30
AU8039487A (en) 1988-06-30
AU614499B2 (en) 1991-09-05
DK444988A (en) 1988-09-20
JPH0783365B2 (en) 1995-09-06
KR880008170A (en) 1988-08-30
DE3788355D1 (en) 1994-01-13
DK444988D0 (en) 1988-08-09
DE3788355T2 (en) 1994-05-05
US4941089A (en) 1990-07-10
CA1293820C (en) 1991-12-31

Similar Documents

Publication Publication Date Title
AU614499B2 (en) Input/output network for computer system
EP0295380B1 (en) Method of disseminating network state information
US4750109A (en) Method and system for expediting multi-packet messages in a computer network
CA1243730A (en) Wireless computer modem
US6697372B1 (en) Local area network accessory for integrating USB connectivity in existing networks
US4493021A (en) Multicomputer communication system
US6603744B2 (en) Connection establishment method, communication method, state change transmission method, state changing method, wireless apparatus, wireless device, and computer
US6453406B1 (en) Multiprocessor system with fiber optic bus interconnect for interprocessor communications
EP0123507B1 (en) Data communication system and apparatus
US5968189A (en) System of reporting errors by a hardware element of a distributed computer system
US5664101A (en) Intelligent industrial local area network module for use in a distributed control system
EP0035790A2 (en) Processor intercommunication system and method
EP0464014A2 (en) Communications systems using a fault tolerant protocol
Wecker DNA: the digital network architecture
GB2226737A (en) Local area network with an active star topology
US5923840A (en) Method of reporting errors by a hardware element of a distributed computer system
JPH0654911B2 (en) Method and apparatus for transferring mastership
EP0093578B1 (en) Communications system
WO1998037666A1 (en) Method and apparatus for integrating multiple repeaters into a single collision domain
JPS6358567A (en) Serial interface bus system
KR0165440B1 (en) Polling communication method
JPH0133061B2 (en)
Ryan et al. Intel local network architecture
NO174910B (en) Computer input / output network
Cripps et al. SONET: a simple open network

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AU BR DK FI JP KP NO

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE FR GB IT LU NL SE

WWE Wipo information: entry into national phase

Ref document number: 1987906702

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1987906702

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 1987906702

Country of ref document: EP