CA1310733C - User to network interface protocol for packet communications networks - Google Patents

User to network interface protocol for packet communications networks

Info

Publication number
CA1310733C
CA1310733C CA000585997A CA585997A CA1310733C CA 1310733 C CA1310733 C CA 1310733C CA 000585997 A CA000585997 A CA 000585997A CA 585997 A CA585997 A CA 585997A CA 1310733 C CA1310733 C CA 1310733C
Authority
CA
Canada
Prior art keywords
data
network
user
packet
eus
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Lifetime
Application number
CA000585997A
Other languages
French (fr)
Inventor
William Paul Lidinsky
Gary Arthur Roediger
Scott Blair Steele
Ronald Clare Weddige
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AT&T Corp
Original Assignee
American Telephone and Telegraph Co Inc
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=22641252&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CA1310733(C) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by American Telephone and Telegraph Co Inc filed Critical American Telephone and Telegraph Co Inc
Application granted granted Critical
Publication of CA1310733C publication Critical patent/CA1310733C/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/205Quality of Service based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3018Input queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/356Switches specially adapted for specific applications for storage area networks
    • H04L49/357Fibre channel switches

Abstract

USER TO NETWORK INTERFACE PROTOCOL
FOR PACKET COMMUNICATIONS NETWORKS
Abstract A high capacity metropolitan area network (MAN) is described. Data traffic from users is connected to data concentrators at the edge of the network, and is transmitted over fiber optic data links to a hub where the data is switched.
The hub includes a plurality of data switching modules, each having a control means, and each connected to a distributed control space division switch.
Advantageously, the data switching modules, whose inputs are connected to the concentrators, perform all checking and routing functions, while the 1024x1024 maximum size space division switch, whose outputs are connected to the concentrators, provides a large fan-out distribution network for reaching many concentrators from each data switching module. Distributed control of the space division switch permits several million connection and disconnection actions to be performed each second, while the pipelined and parallel operation within the control means permits each of the 256 switching modules to process at least 50,000 transactions per second. The data switching modules chain groups of incoming packets destined for a common outlet of the space division switch so that only one connection in that switch is required for transmitting each group of chained packets from a data switching module to a concentrator. MAN provides security features including a port identification supplied by the data concentrators, and a check that each packet is from an authorized source user, transmitting on a port associated with that user, to an authorized destination user that is in the same group (virtual network) as the source user. A special network protocol for implementing these features is controlled by data in the header of packets for the network.

Description

3 ~

USER TO ~ETWO~K INTERF~C~ PlROTOCOL
FOR PACKET COI\/II~'IVN~CATIONS NETWORK~

Technical Fiel~
This invention relates to data networks, and more specifically, to 5 protocols for packet networks.
Problem Present day data communication systems offer the transport of data between end users connected to the network. Such systems, using protocols such as the ~.25 protocol of the CCITT, provide facilities for the transmission of blocks of 10 limited length in a fle~ible manner among the end users attached to these systems.
X.25 is prepared to transmit data over a network involving a large number of nodes and internodal links and requiring a variable number of links for connections between specific end users.
Protocols such as X.25 have been aimed primarily for use in systems in 1~ which basic data transfer messages transmit relatively small numbers of data blocks each limited in length to typically several thousand bytes for each block. As a result, these systems, in the interest of efficiency, limit the length of header inforrnation that is transmitted with each data block to that information which is most criticallyneeded for handling data transfers.

7 3 ~
However, for systems in which very large quantities of data such as whole files are transferred frequently, the X.25 protocol is less efficient. First, the X.25 protocol causes the network to perform a substantial amount of error checking (layer 3 function); second, transmission retries are automatically perforrned by the 5 network in case errors are detected or if data has not been received within the network; and third, timing is performed to ensure that successive blocks of a data message follow each other within a certain interval. In X.25 data transmission protocol, most messages are sent after a connection has been established in the data network between the end users. The process of establishing a connection between 10 such end users comprises setting up routing tables for transmitting data between the end users and allocating buffering resources to these messages. Such arrangements which tend to dedicate substantial amounts of network resources to each connection create major problems when applied to the transfer of very large numbers of datcl transactions between end users. Further, because each end user may have many concurrent associations, the number of resources which would have to be preallocated in thenetwork would be prohibitive.
S Typically, present day X.25 networks are prepared for very hig,h enor rates and make frequent checks of data to ensure that a particular block is error free. Furthermore, such netwol*s may have alternate routing capabilities wherebyone data block may be routed over a sllorter path than another and may thus arrive ahead of its successor; while such an event is a very infreqllent one, especially in 10 meh~opolitan area networks, a substantial amount of processing resources is devoted to making this check on each data block.
Further, while the X.25 protocol checks carefully for errors, its security provisions leave much to be desired. Specifically, an illegitimate user can take Oll the appearance of a legitimate user who has previously logged into the 1~ system.
Large local area networks have a limited field of application for small metropolitan area netwol*s. However, such local area networks suffer from inadequate capacity for serving a large metropolitan area user community, and provide inadequate security, especially if they are used as common carrier 20 networks.
A problem of the prior art, therefore, is that the protocols used for transmitting data do not provide adequate protection for preventing illegal access by unauthorized users. Further these protocols are not efficient for the transmission of large numbers of data messages, for systems where end users have~5 many simultaneous associations with other end users on the netwol*, and for transmissioll in a high reliability network having low error rates, and one wherein the sequence of data blocks is automatically retained.
Solution The above problems are solved and an advance is made over the prior ~n nrt in nccordance with the principles of this invention wherein the network is given the respollsibility for checking that only authorized users are cotllmllllicatillg. The header for each data packet contains the source and destinatioll. If tlle source/destinatioll pair are unauthorized, the network blocks the packet. Advantageollsly, only authorized source/destination pairs may 35 communicate.

~.3~ ~7~3 The header f~lrther contains infol~nation identifying the physical port from which ~he data message is being transmitted. This identification is advantageously supplied in the network so that a user may not falsely identify the messnge as beillg transmitted from one of a group of restricted ports available for use in n private virtual network. Advantageously, only the user who logged in mny trnllsmit data packets bealing his user identificatioll sillce any data blocks received by the netwolk from anotller port, but bearing that user identificatioll will be bloc~;ed in the network.
The header is separately checked. If a header has erroneous data, the lû packet is discarded. Advantageously, the separate check of the header provides additiollal security.
This protocol has been designed for use with the low error rates of a ~iber optic sllort distance data network, with the small amount of processing reqllired for detecting errors and for the occasional retransmission under the 1~ control of the end user's terminal of data messages in response to such detection.
In accordance with the principles of this invention, network functions are specifically defined to be those network functions which can be carried out by a high-speed network wherein data is concentrated at the edges of the network and is switched only through a single centralized hub, thus providing a low error rate.
~0 This design of the network guarantees that sequential data blocks of a data message arrive at the receiver in the sequence of their transmission; this is a consequence of the way that packets are processed within nodes of the network and of the fact that all connections are switched only at the hub. The rarity ofrel~eptioll of out of sequence packets in such a network makes it possible to use i~ only simple user checks to ensure that messages have been completely and properly received~
In this embodiment, each user is tied to an interface with substantial dntn buffering cnpnbility~ When data messages are received, they are buffered inthe intert`ace nnd the user has time to allocate memory for proper disposal of the 3~ received dntn message~ The header contains message length data~
Advnntngeously, such an arrangement permits a data transmitting user to send a dnln message to ~ receiving user without waiting for an acknowledgment that the r~ceiver hns nllocated resoluces for the reception of the message.
4 a In accolcl.lnce witll one aspect of the invel7tioll thelt: is p rovided a protocol for a data network~ comprisino: a dclta pclcket he.l-lel colnpl-isill~ all idelltitication ot` a source and a destination; wherein said datcl network comprises mealls t`or checking for each datcl entity that transmission trom sai(l so~ ce to s aicl 5 destination is authorized prior to transmitting said each data entity to saici destinatio if network transmission capacity is available.
In accordance with another aspect of the in~ention there is pro~ idecl a method of transmitting data packets in a cklta networlc comyrisin g [he steps ol`:
jllserting in a header of each data packet an identitication of a so~ll-ce all-l a 10 cle~tin.ltion; and checkillg in saicl clat a network for eacll clata elltit\ whetller s.li(l source is authorized to transmit packets to said clestination prior to translllittillg sai(l eclcll (lata entity to said clestination it network transmis!iinll capacity is a~ailal-le.

5 ~$~
c~ I)cscl i~ oll I-r tlle l)l.
FIG. I is a graphic repl-eselltation ot` tl~e clull.lctelisti~s o~ tl~e ty~e ot`eomlllullications trattie in a metropnlitan area net~vol-lc.
FIG. 2 is a high level bloek diagram of an e~emplary metropolitan Irea 5 network ~referred to herein as MAN) ineluding typieal inp-lt user st~tions thlt COllllllUlliCate Vicl such a network.
FIG. 3 is a more detailed block dic~ r,ram ot the h-lt) o~ mcl the units eommunieating witll that hub.
FIGS. 4 and 5 are block diagrams of MAN ilhlstratin~, how datcl tlows 10 from input user systems to the hub of h/IAN and baek to output ~lser sy:itelns.
FIG. fi is a simplified illustrative e~ample of a type of netwol k ~vllicl C.lll be used as ~I eireuit switell in tl~e hul- ot MAN.
FIG. ;' is a hloek diagralll ot all illustrative ellll)odilllellt ot` ~ lAN
eircuit s~vitell .alld its assoei.lte-l eontrol network.
1~ FIGS. S ~Ind 9 are flowellarts representing the t`low ot` recluests from tlle data uistribution stage of the hub to the eontrollers of the eireuit switell ot the h-lh.
FIG. I0 is a bloek diagram of one data distribution switeh of a huh.
FIGS. 11-l4 are block diagrams and data llyouts ot portions of the dat~
distribution s~viteh ot the hub.
FIG. 1~ is a bloek diagrclm ot` an oper~ltioll~ admillistratioll, all~l maillt~nanee ~OA~ system t`or eontrolling the data distributioll sta ,e ot` the h~lb.
FIG~ 16 is a bloek diagram of an intert`aee module for interfaeing bet~v~en end user systems and the hub.
FIG. 17 is n bloek diagram ot an arraIlgemellt tor intell~aeillg het~vee all ~n~ us~r system allcl 1 network intel-f<lee.
FIG. 1~ is a bloek diagralll ot a typieal end lls~r s~stelll.
FIG. 1~) is 1 bloek diclgrcllll ot` a eontrol al ran;relllellt ~or intel tcleill~r b~v~n ~n end user system and the huh ot` MAN.
FIG~ 20 is a layout of a data paeket arranged for transmission thro~lgh 3~ ~lAN illustrating the MAN protocol.
FIG. ~1 illustrates an alternate arrangement for controlling access fro the dcata distribution switches to the cire~lit switeh eontrol.
FIG. 2~ is a bloek cliclgrcllll illustrclting arrc~ elllellt:; t`Or llsing l~lAN tO
s~vitch voice as well as data.

~3:~73~

FIG. 23 ill~lstrates an arrangement for synchronizin~ data received trom the circ~lit switch by one ot` the d~ntcl distrib~ltion switches.
FIG. ~4 ill-]strates an alternate arrangement for the hub tor switclling packetized voice and data.
FIG. 25 is a block diagram ot a MAN circ~lit switch controller General Description The Detailed Description of this specit`ication is a description ot an exemplary metropolitan area network (MAN) that incorporates the present invention.
Such a network as shown in FIGS. 2 and 3 includes an outer ring of network interface modules (NIMs) ~ connected by fiber optic links 3 to a hub 1. The hub interconnects data and voice packets from any of the NIMs to any other NIM. ~he NlMs, in t~lrn~
are connected via interface modules to ~lser devices connected to the network.
The invention claimed herein is a protocol for use with a network s~lcll as the MAN described in the Detailed Description. Details ot` the protocol are to~lnd 1~ in Section 9 and in FIG. 20. The transmission path of the network is described throu(Tilo~lt the rest ot` the Detailed Description. The specit`ic choices oF where dcltcl is buft`ered, in the ~lser system and the data switch modules (MINTs 11) ot the hub l on the transmission side, and in the lser to network intertace mod~lle (UIM 13) on the reception side, makes possible a network in which there is only one stage ot` data switching and one stage of circuit switching resulting in an arrangement in which the number of errors in transmission is minimized, in which the order ot` packets isretained at all times, and which theret`ore can ~lse a protocol of the type described Det:liled Descriptinn I INTRODUCTION
Data networks often are classified by their size and scope ot` ownership.
Local area networks (LANs) are ~lsually owned by a single or~anization and have a reach ot` a few kilometers. They interconnect tens to hundreds of terminals, comp~lters~ and other end user systems (EUSs). At the other extre1lle ale ~vide ale networks (WANs) spannin~ continents, owned by common carriels. and interconnectin;, tens ot thousands ot EUSs. Between these e~xtreme!i other data networks have been identified whose scope ranges from a camp~ls to a metropolitan area. The high performance metropolitan area network to be described herein will be referred to as MAN. A table of acronyms and abbreviations is found in Appendix A

~ 3 ~

Metropolitan area networks serve a variety of EUSs ranging from simple reporting devices and low intelligence terminals through personal computers to large mainframes and supercomputers~ The demands that these EUSs place on a network vary widely. Some may issue messages infrequently 5 while others may issue many messages each second. Some messages may be otlly a few bytes while others may be files of millions of bytes. Some EUSs may require delivery any time within the next few hours while others may require delivery within microseconds.
This invention of a metropolitan area network is a computer and 10 telephone corlmlunications network that has been des;gned for transmitting broadband low latency data which retains and indeed e~cceeds the performance ch,~uacteristics of the highest perforrnance local area networks~ ~ metropolitanarea network has size characteristics similar to those of a class 5 or end-office telephone central office; consequently, with respect to size, a metropolitan area 15 network can be thought of as an end-office for data. The exemplary embodimentof the invention, hereinafter called MAN, was designed with this in mind.
However, MAN also fits well either as an adjunct to or as part of a switch module for an end-office, thus supporting broadband Integrated Services Digital Network(ISDN) services. MAN can also be effective as either a local area or campus area20 network. It is able to grow gracefully from a small LAN through campus sized networks to a full MAN.
The rapid proliferation of workstations and their servers, and the growth of distributed computing are major factors that motivated the design of this invention. MAN was desi~,ned to provide networking for tens of thousands of 2~ diskless workstations and servers and other computers over tens of kilometers, where each user has tens to hundreds of simultaneous and different nssociations with other computers on the network. Each networked computer can conculTently generate tens to h~lndreds of messages per second, and require VO rates of tens to hundreds of millions of bits/second (Mbps)~ Message sizes may range from 30 hundreds of bits to millions of bits. With this level of performance, MAN is capable of supporting remote procedure calls, interobject communications, remotedemand paging, remote swapping, file transfer, and computer graphics. The goal is to move most messages (or transactions as they will be referred to henceforth) from an EUS memory to another EUS memory within less than a millisecond for 35 small transactions and within a few milliseconds for large transactions~ FI~. 1 classifies transaction types and show desired EUS response times as a function of ~?~ 6 both transaction type and size, simple (i.e., low intelligence) terminals 70, remote procedure calls (RPCs) and interobject communications (IOCs) 72, demand paging 74, memory swapping 76, animated computer graphics 78, computer graphics still pictures 80, file transfers 82, and packetized voice 84. Meeting the S response time/transaction speeds of FIG. 1 represents part of the goals of theMAN network. As a calibration, lines of constant bit rate are shown where the bit rate is likely to dominate the response time. MAN has an aggregate bit rate of 150 gigabits per second and can handle 20 million network transactions per second with the exemplary choice of the processor elements shown in FIG. 14.
10 Furthermore, it has been designed to handle traffic overloads gracefully.
MAN is a network which perfolms switching and routing as many systems do, but also addresses a myriad of other necessary functions such as error handling, user interfacing, auld the like. Significant plivacy and security features in MAN are provided by an authentication capability. This capability prevents lS unautllorized network use, enables usage-sensitive billing, and provides non-forgeable source identification for all information. Capability also exists for defining virtual private networks.
MAN is a transaction-oriented (i.e., connectionless) network. It does not need to incur the overhead of establishing or maintaining connections although 20 a connection veneer can be added in a straightforward fashion if desired.
MAN can also be used for switching packetized voice. Because of the short delay in traversing the network, the priority which may be given to the transmission of single packet entities, and the low variation of delay when the network is not heavily loaded, voice or a mixture of voice and data can be readily 25 supported by MAN. For clarity, the term data as used hereinafter inc]~ldes digital data representing voice signals, as well as digital data representing commands, mlmerical data, graphics, programs, data files and other contents of memory.
MAN, though not yet completely built, has been extensively simulated. l~Iany of the capacity estimates presented hereinafter are based on ~0 these simulations.
RCHITECTURE AND OPERATION
?~ rchitecture The MAN network is a hierarchical star architecture with two or three levels depending upon how closely one looks at the topology. FIG. 2 shows the 35 network as consisting of a switching center called a hub 1 linked to ~ work interface modules 2 (NIMs) at the edge of the network.

The hub is a very high perforrnance transaction store-and-forward system that gracefully grows from a small four link system to something very large that is capable of handling over 20 rnillion network transactions per second and that has an aggregate bit rate of l50 gigabits per second.
Radiating out from the hub for distances of up to tens of kilometers are optical fibers (or alternative data channels) called e~cternal links (XLs) (connect NI~ to MINT), each capable of handling full duple~c bit rates on the order of 150 megabits per second. An XL terminates in a NIM.
A l~I, the outer edge of which delineates the edge of the network, lO acts as a concentrator/demultiplexer and also identifies network ports. It concentrates when moving inforrnation into the network and demultiplexes when moving information out of the network. Its purpose in concentratingldemultiplexing is to interface multiple end user systems 26 (EUSs)to the network in such a way as to use the link efficiently and COSt effectively.
15 Up to 20 EUSs ~6 can be supported by each NIM depending upon the EUSs networking needs. Exarnples of such EUSs are the increasingly common advanced function workstations 4 where the burst rates are already in the lO ~Ibps range (with the expectation that much faster systems will soon be available) with average rates orders of magnitude lower. If the EUS needs an average rate that is 20 closer to its burst rate and the average rates are of the same order of magnitude as that of a NIM, then a NIM can either provide multiple interfaces to a single EUS 26 or can provide a single interface with the entire NIM and XL dedicated tothat EUS. Examples of EUSs of this type include large mainframes 5 and file servers 6 for the above workstations, local area networks such as ETHERNET(~) 8 25 and high performance locàl area networks 7 such as Proteon(g) 80, an 80 ~Bit token ring manufactured by Proteon Corp., or a system using a fiber distributed data interface (FDDI), an evolving American National Standards Institute (ANSI) standard protocol ring interface. In the latter two cases, the LAN itself may dothe concentration and the N~l then degenerates to a single port network interface 30 module. Lower performance local area networks such as ETHERNET 8 and IBM *
token rings may not need all of the capability that an entire NIM provides. In these cases, the LAN, even though it concentrates, may connect to a port 8 on a multiport NIM.
Within each EUS there is a user interface module (UIM) 13. This 35 unit serves as a high bit rate direct memory access port for the EUS and as abuffer for transactions received from the network. It also off-loads the EUS from * trade-mar~c .~L C,'' L ~ u ~s ~

MAN interface protocol concerns. Closely associatecl with the UIM is the MAN
EUS-residellt driver. It works with the UIM to forrnat OutgO;tlg trans~ctions, receive incoming transactions, implement protocols, and interface with the EUSs operating system.
A closer inspection (see FIG. 3) of the hub reveals two different t`unctional units - a MAN switch (MANS) lû and one or more memory interface odules 1 l (MlNTs)~ Each MINT is connected to up to four NIMs via ~Ls 3 and thus can accommodate up to 80 EUSs. The choice of four NIMs per MINT is based upon a number of factors including transaction handling capacity, buffer 10 memory size within the MINT, growability of the network, failure group size, and ag ,regate bit rate.
Each MINT is connected to the MANS by four internal links 12 (ILs) (connect MINT and MAN switch), one of which is shown for each of the MINTs in FIG. 3. Ttle reason for four links in this case is different than it is for the XLs.
15 ~Iere multiple links are necessary because the MINT will norrnally be sendinginfolmatioll through the MANS to multiple destinations concurrently; a single ILwould present a botdeneck. The choice of 4 ILs (as well as many other design choices of a similar nature) was made on the basis of extensive analytical and simulation modeling. The ILs run at the same bit rate as the external links but are 20 very short since the entire hub is colocated.
The smallest hub consists of one MINT with the ILs looped back and no switch. A network based upon this hub includes up to four NIMs and accornmodate up to 80 EUSs. The largest hub that is currently envisioned consists of 256 MINTs and a 1024 x 1024 MANS. This hub accommodates ')~ 10~ NIMs and up to 20,000 EUSs. By adding MINTs and growing the MANS, the hub and ultimately the entire network grows very gracefully.
2.1.1 LUWUs, Packets, SUWUs, and Transactions Before going further several terrns need to be discussed. EUS
transactions are transfers of Imits of EUS information that are meaningful to the ~0 EUS. Such transactions might be a remote procedure call consisting of a few bytes or the transfer of a 10 megabyte database. MAN recognizes two EUS
transactioll unit sizes that are called long user work unit (LUWUs) and short user worl; units ~SUWUs) for the purposes of this description. While the delimiting size is easily engineerable, usually ~ansaction units of a couple of thousand bits 35 or less are considered SUWUs while larger transaction units are LUWUs. Packets are given priority within the network to reduce response time based upon criteria shown in FIG~ 1 where it can be seen that the smaller EUS transaction units usually need faster EUS transaction response times. Packets are kept intact as asingle frame or packet as they move through the network. LUWUs are fragmellted into frames or packets, called packets hereinafter, by the transmitting 5 UI~I. Packets and SUWUs are sometimes collectively referred to as network transaction units.
Transfers through the MAN switch are referred to as switch transactions and the units transferred through the MANS are switch transaction units. They are composed of one or more network transaction units destined for 10 the sallle NIM.
.2 Flmctional Unit Overview Prior to discussillgr the operation of MAN, it is useful to provide a brief overview of each major functional unit within the network. The units described nre the UIM 13, NIM 2, MINT 11, MANS 10, end user system link 1~ ~connects NIM and UIM) (EUSL) 14, XL 3, and IL 12 respectively. These units are depicted in FIG. 4.
2.2.1 User Interface Module - UIM 13 This module is located within the EUS and often plugs onto an EUS
backplane such as a VME(~ bus (an IEEE standard bus), an Intel MULTIBUS
'20 II~, mainframe 1/0 channel. It is designed to fit on one printed circuit board for most npplications. The UIM 13 connects to the NIM 2 over a duplex optical fiber link cnlled the EUS link 14 (EUSL), driven by optical transmitter 97 cmd 85. This link runs at the same speed as the external link (XL) 3. The UIM has a memory queue 15 used to store information on its way to the network. Packets and ~3 SUWUs are stored nnd forwarded to the ND!~I using out-of-band flow control.
By way of contrast, a receive buffer memory 90 must exist to receive inforn~ntion from the network. In this case entire EUS transactions may s~metimes be stol~d until they can be transferred into End User System memory.
~he r~ceive buft`er must be capable of dynamic buffer chaining. Partial EUS
3~ trlmsnctions may arrive concurrelltly in an interleaved fashion.
Opticnl Receiver 87 receives signals from optical link 14 for storage in receive but`t`er mel11ory 90. Control 25 controls UIM 13, and controls exchange of dnta between transmit first-in-first-out (FIFO) queue 15 or receive buffer memory 90 and a bus interface for interfacing with bus 92 which connects to end user system 26. The details of the control of UIM 13 are shown in FIG. 19.

~ ~ A ~

2.2.2 Network Interface Module - NIM 2 A NIM ~ is the part of MAN that is at the edge of the network. A
NIM performs si~c func~ions: (1) concentration/demultiplexing including queuing of packets and SUWUs moving toward the MINT and external link arbitration, (2) S participation in network security using po}~ identi~cation, (3~ participation in congestion control, (4) EUS-to-network control message identification, t5) participation in elTor handling, and (6) network interfacing. Small queues 94 inmemory simil~r to those 15 found in the UIM e~ist for each End User System.
They receive information fiom the UIM via link 14 and receiver 88 and store it 10 until XL 3 is available for transmission to the MINT. The outputs of these queues drive a data concentrator 95 which in turn drives an optical transmitter 96. An external link demand multiplexer exists which services demands for the use of the XL. The NIM prefixes a port identification number 6û0 (FIG. 20) to each network transaction unit flowing toward the MINT. This is used in various ways lS to provide value added services such as reliable and non-fraudulent sender identification and billing. This prefix is particulal1y desirable for ensuring that members of a virtual network are protected from unauthorized access by outsiders.
A check sequence is processed for error control. The NIM, working with the hub 1, detern1ines congestion status within the network and controls flow from the 20 UIMs under high congestion conditions. The NIM also provides a standard physical and logical interface to the network including flow control mechanisms.Information flowing from the network to the EUS is passed through the NIM via receiver 89, distributed to the correct UIM by data distlibutor 86, and sent to destination UIM 13 by transmitter 85 via link 14. No buffering is done at 2~ the NIM.
There are only two types of NIMs. One type (such as shown in FIG. 4 and the upper right of FIG. 3) concentrates while the other type (shown at the lower right of FIG. 3) does not.
2.2.3 Memory and Interface Module - MINT 11 MINTs are located in the hub. Each MINT 11 consists of: (a) up to four e~;ternal link handlers 16 (XLHs) that telminate XLs and also receive signals fi~om the half of the internal link that moves data from the switch 10 to the MINT;
~b) four internal link handlers 17 (ILHs) that generate data for the half of the IL
that moves data from a MINT to the switch; (c) a memory 18 for storing data 3~ while awaiting a path from the MINT through the switch to the destination NIM;
(d) a Data Transport Ring 19 that moves data between the link handlers and the r1 3 ~
memory and also carries MINT control inforrnation; and (e) a control unit 20~
All functional units within the MINT are designed to accommodate the peak aggregate bit rate for data moving concurrently into and out of the MINT. Tlllls the rin(J, which is synchronous, has a set of reserved slots for 5 nmvillg infolmatioll *om each ~LH to memory and another set of reserved slots ~or IllOVing infom~ation from memory to each ILH. It has a read plus write bit rate of over 1.5 Gbps. The memory is 512 bits wide so that an adequate memory bit rate can be achieved with components having reasonable access times. The size of the memol~ (16 Mbytes) can be kept small because the occupancy time of lO infonn~tion in the memory is also small (about 0.57 milliseconds under full network load). However, this is an engineerable number that can be adjusted if necessary~
The XLHs are bi-directional but not symmetric. Information moving ~rom NIM to MINT is stored in MINT memory. Header information is copied by 15 the ~LH and sent to the MINT control for processing. In contrast, informationmaving ~ralll the switch 10 toward a NIM is not stored in the MINT but simply passes througll the MINT, without being processed, on its way from MANS 10 output to n destinntion NIM 2. Due to variable path lengths in the switch, the infomlation leaving the MANS 10 is out of phase with respect to the XL. A
'~0 phllse aligmnent and scrambler circuit (described in section 6.1) must align the llata before transrnission to the NIM can occur. Section 4.6 describes the internal link handler (ILH).
The MINT perforrns a variety of functions including (1) some of the overall routing within tlle network, (2) participation in user validation, (3) 52~ pnrt;cipation in network security, (4) queue management, (5) bufferin~ of neework transnctiolls, (6) address trnnslation, (7) participation in congestion control, and (8) the gelleratioll of operation, administration, and maintenance (OA&M) plimitives.
The control for the MINT is a data flow processing system tailored to th~ ~IINT control algorithms~ Each MINT is capable of processing up to ~0 ~0,000 network trmlsnctions per second. A fully provisioned hub with 250 MINTs ean theret`ore process 20 million network trallsactiolls per second. This is ~iscussed ~urther in section 2~3~
~AN Switch - MANS lO
The ~IANS consists of two main parts (a) the fabric 21 through which 33 inf`amlntion passes nnd ~b) the control 22 for that fablic. The control allows the sw;tch to be set up in about 50 microseconds. Special properties of the fabric ~ ~ ~L ~ ~ ~3 3 allow thc control to be decomposed into completely independent sub-contlollers that can operate in parallel. Additionally, each sub-controller can be pipelined.
Thus, not only is the setup time very fast but many paths can be set up concurrently and the "setup throughput" can be made high enough to S accommodate high request rates from large numbers of MINTs. MANs can be made in various sizes ranging from 16x16 (handling four MINTs) to 1024 x 1024 (handling 256 MINTs).
2.2.5 End User System Link - EUSL 14 The end user system link 14 connects the NIM 2 to the UIM 13 that 10 resides within the end user's equipment. It is a full duplex optical fiber link that runs at the same late and in synchronism with the eternal link on the ~ther side of the NIM. It is dedicated to the EUS to which it is connected. The lengtll of theEUSL is intended to be on the order of meters to 10s of meters. However, there is no reason why it couldn't be longer if economics allow it.
The basic format and data rate for the EUSL for the present embodiment of the invention was chosen to be the same as that of the Metrobus Lightwave System OS-l link. Whatever link layer data transmission standard is eventually adopted would be used in later embodiments of MAN.
2.2.5 External Links - XL 3 ~0 The external link (XL) 3 connects the NIM to the MINT. It is also a full duplex synchronous optical fiber link. It is used in a demand multiplexed fashion by the end user systems connected to its NIM. The length of the XL is intended to be on the order of 10s of kilometers. Demand multiplexing is used for economic reasons. It employs the Metrobus OS-l format and data rate.
25 2.2.7 Internal Links - IL 24 The internal link 24 provides connectivîty between a MINT and the ~IAN switch. It is a unidirectional semi-synchronous link that retains frequencybut loses the synchronous phase relationship as it passes through the MANS 10.
The length of the IL 24 is on the order of meters but could be much longer if 30 economics allowed. The bit rate of the IL is the same as that of OS-l. The ~ormat, however, has only limited similarity to OS-l because of the need to resynchronize the data.
2.3 Software Overview Using a workstation/server paradigm, each end user system connected 35 to MAN is able to generate over 50 EUS transactions per second consisting of LUWUs and SUWUs. This translates into about 400 network transactions per ~ 3 ~

second (packets and SUWUs). With up to 20 EUS per NIM, each NIM must be capable of h~mdling up to 8000 network transactions per second with each MINT
handling up to four times this amount or 32000 necwork transactions per second.
These are average or sustained rates. Burst conditions may substantially increase 5 "instantaneous" rates for a single EUS 26~ Averaging over a number of EUSs will, however, smooth out individ~lal EUS bursts. Thus while each NIM port MUSt deal with bursts of consideral~ly more than 50 network transactions per second, NIMs (2) and XLs (3) are likely to see only moderate bursts. This is even more true of MINTs 11, each of which serves ~ NIMs. The MAN switch 10 lO mllst pass an average of 8 million network transactions per second, but the switch conhroller does not need to process this many switch requests since the design of the MINT conhrol allows multiple packets and SUWUs going to the same destination NIM to be switched with a single switch setup.
A second factor to be considered is network trcmsaction interarrival 15 time. With rates of l50Mbps and the smallest network transaction being an SUWU of 1000 bits, two SUWUs could arrive at a NIM or MINT 6.67 microseconds apaut. NIMs and MINTs must be able to handle several back-to-back SUWUs on a transient basis.
The control software in the NIMs and especially the MINTs must deal 20 with this severe real-time transaction processing. The asymmetry and bursty nature of data hraffic requires a design capable of processing peak loads for short periods of time. Thus the transaction control software structure must be capableof execuhng many hundreds of millions of CPU inshructions per second (lOO's of MIPs). Moreover, in MAN, this control software performs a multiplicity of 2~ funchions including routing of packets and SUWUs, network port identification, queuin~, of network hransactions destined for the same NIM over up to 1000 NIMs (this means real time maintenance of up to 1000 queues), handling of MANS
requests and acknowledgements, flow control of source EUSs based on complex criteria, network traffic data collection, congestion conhrol~ and a myriad of other 30 tasks.
The MAN control software is capable of performing all of the above tnsks in real hme. The control software is executed in three major components:
NIM conhol 23, MINT conhrol 20, and MANS conhol 22. Associated with these three conhol components is a fourth control sh~lcture 25 within the UIM 13 of the 35 End User System 26. FIG. 5 shows this arrangement. Each NIM and MINT has its own control unit. The control units function independently but cooperate ~ 3 ~

closely~ This partitioning of control is one of the architectural mechanisms that ma~;es possible M~N's real-time transaction processing capability. The other mechanism that allows MAN to handle high transaction rates is the technique of decomposing the contlol into a logical array of subfunctions and independently 5 applying processing power to each subfunction. This approach has been greatly facilitated by the use of Transputer~ very large scale integration (VLSI) processor devices made by INMOS Corp. The technique basically is as follows:
- Decompose the problem into a number of subfunctions.
- Arrange the subf~mctions to form a dataftow structure.
10 - Implement each subfunction as one or more processes.
- Bind sets of processes to processors, arranging the bound processors in the same topology as the dataftow structure so as to forrn a datatlow system that will execute the function.
- Iterate as necessary to achieve the real-time performance required.
1~ Brief descliptions of the functions performed by the NIM, MINT, and MANS (most of which are done by the software conhol for those modules) are given in sections 2.2.2 through 2.2.4. Additional infolmation is given in section 2.4. Detailed descriptions are included later in this description within specific sections covering these subsystems.
~0 2.3~1 Control Processors The processors chosen for the system implementation are Transputers from INMOS Corp. These 10 million instructions/second (MIP) reduced instruction set con~rol (RISC) machines are designed to be connected in an arbitrary topology over 20 Mbps serial links. Each machine has four links with an 2~ input and output path capable of simultaneous direct memory access (DMA).
.3.2 MINT Control Performance Because of the need to process a large number of transactions per second, the processing of each transaction is broken into serial sections which fornl a pipeline. Transactions are fed into this pipeline where they are processed ~n simultnneously with other transactions at more advanced stages within the pipe.
In ndclition, there are multiple parallel pipelines each handling unique processing streams simultaneously. Thus, the required high transaction processing rate, where each transaction requires routing and other complex servicing, is achieved by brenking the control structllre into such a parallel/pipelined fabric of 3~ ;nterconnected processors.

A constraint on MINT control is that any serial processing can take no longer than 1/ (number of transactions per second processed in this pipeline).

A further constraint concerns the burst bandwidth for headers entering the control S within an XLH 16. If the time between successive networlc units a~riving at the ~LH is less than (header size) / (bandwidth into control) then the XLH must buffer headers. The maximum number of transactions per second assuming uniform arrival is given by:
(bandwidth into control) / ( size of transaction header).

An example based upon the effective bit rate of transputer links and the 40 byteMAN network transaction header is:

(g.OMb/s for control link)/(320 bit header/transaction) = 25,000 transactions/sec. per XLH, 15 or one transaction per XLH every 40 microseconds. Because transaction interarriYal times can be less than this, header buffering is performed in the XLH.
The MINT must be capable, within this time, of routing, executing billing primitives, making SWitC]I requests, performing network control, memory management, operation, administration, and maintenance activities, name serving,20 and also providillg other network services such as yellow page primitives. The parallel/ pipelined nature of MINT control 20 achieves these goals.
As an example, the allocating and freeing of high-speed memoly blocks can be processed completely independently of routing or billing primitives.
Transaction flow within a MINT is controlled in a single pipe by the management 2~ of the memory block address used for storing a network transaction unit (ie.
packet or SUWU). At the first stage of the pipe, memory management allocates free blocks of high-speed MINT memory. Then, at the next stage, these blocks are paired with the headers and routing translation is done. Then switch units are ~ ci 1 .~ d ~J

collected based on memory bloclcs sent to common NIMs, and to close the loop the memory blocks are ~reed after the blocks' data is transmitted into the M~NS.Billing primitives are simultaneously handled within a different pipe.
? ~ MAN Op~ration S The ~EUS 26 is viewed by the network as a user witll capabilities granted by a network administration. This is analogous to a terminal user loggedinto a time-sharillg system. The user, such as a workstation or a front end processor acting as a concentrator for stations or even networks, will be required to make a physical connection at a NIM port and then identify itself via its MAN10 name, virtual network identification, and password security. The network adjusts routillg tables to map data destined for this name to a unique NIM port. The capabilities of this user are associated with the physical port. The example just given accommodates the paradigm of a portable workstation. Ports may also be configured to have fi~ced capabilities and possibly be "owned" by one MAN named 1~ end user. This gives users dedicated network ports or provides privileged administrative mainten~mce pOltS. The source EUS refer to the destination by MAN names or services, so they are not reqllired to know anything about the dynamic network topology.
The high bit rate and large transaction processing capability internal to 20 the network yield very short response times and provide the EUS with a means to move data in a metropolitan area without undue network considerations. A MAN
end user will see ElJS-memory-to-EUS memory response times as low as a millisecond, low error rates, and the ability to send a hundred EUS transactionsper second on a sustained basis. This number can expand to several thousand for ?:) high performance EUSs~ The FUS will send data in whatever size is appropriate to his needs with no ma~cimom upper bo-lnd. Most of the limitations on optimi~ing MAN performance are imposed by the limits of the EUS and applications, not the overhead of the network. The user will supply the following int`orrnntion on transmitting data to the UIM:
~0 - A MAN nmlle and virtual netwol* name for the destination address that is independent of the physical address.
- The size of the data.
- A MAN type field denoting network service required.
- The data.

Network transactions (packets and SUWUs) move along the following logical path (see FIG. 5):

sourceUIM ==> sourceNIM ==> MINT ==> MANS==> destinationNIM(via MINT) ==> destinationUIM.

5 Each EUS transaction (i.e., LUWU or SUWU) is submitted to its ~JIM. Inside theUIM, a LIJWU is further fragmented in~o variable si~e packets. An SUWU is not fragmented but is logically viewed in its entirety as a network transaction.
However, the determination that a network transaction is an SUWU is no~ made until the SUWU reaches the MINT where the information is used in dynamically lO categorizing data into SUWUs and packets for optimal network handling. The N:l?vl checks incomill~, packets from the EUS to verify that they do not violate a ma~imum packet size. The UIM may pick packet sizes smaller than the maximum depending on EUS stated service. For optimum MINT memory utilization, the packet size is the standard maximum. However under some 1~ circumstances, the application may request that a smaller packet size be usedbecause of end user consideration such as timing problems or data availability timing. Additionally, there may be timing limits where the UIM will send what itcurrently has from the EUS. Even where the maximum size packet is used, the last packet of a LUWU usually is smaller than the maximum size packet.
At the transrnitting IJIM each network ~ransaction (packet or SUWU) is prefi~;ed with a fixed length MAN network header. It is the inforrnation within this hender which the MAN network so~tware uses to route, bill, offer network services, and provide network control. The destination UIM also uses the information within this header in its job of deliveling EUS transactions to the end user~ The network transactions are stored in the UIM source transaction queue from which they are transmitted to the source N[M.
Upon receiving network transactions from UIMs, the NIM receives them in queues pennanently dedicated to the EUSLs on which the transaction Rrrived, for forwarding to the MINT 11 as soon as the link 3 becomes available.
30 The control software within the NIM processes the UIM to NIM protocol to identify control messages and prepends a source port number to the transaction that will be used by the MINT to authenticate the transaction. End-user data will never be touched by MAN network software unless the data is addressed to the network as control information provided by the end user. As the transactions are processed, the source NIM concentrates them onto the external link between the source NIM and its MINT. The source NIM to MINT links terminate at a hardw~ue inter~ace in the MINT (the external link handler or XLH 16).
The e~cternal link protocol between the NIM and MINT allows the 5 XLH 16 to detect the beginning and end of network transactions. The transactions aue immediately moved into a memory 18 designed to handle the 150Mb/s bursts of data arliving at the XLH. This memory access is via a high-speed time slottedring 1~ which guarantees each 150Mb/s XLH input and each 150Mb/s output from the MINT (ie. MANS inputs) bandwidth with no contention. For example, a 10 MINT which concentrates 4 remote NIMs and has 4 input ports to the center switch must have a burst access bandwidth of at least 1.2Gb/s. The memory storage is used in fixed length bloclcs of a size equal to the ma~imum packet size plus the fi,Yed length MAN header. The XLH moves airl address of a fixed size memory block followed by the packet or SUWU data to the memory access Ang.
l5 The data and ne~work header are stored lmtil the MINT control 20 causes its transmission into the MANS. The MINT control 20 will continually supply the XLHs with free memory block addresses for storing the incoming packets and SUWUs. The XLH also "knows" the length of the fixed size network header.
With this information the XLH passes a copy of the network header to MINT
20 control 20. MINT control 20 pairs the header with the block address it had given the XLH for storing the packet or SUWU. Since the header is the only internal representation of the data within MINT control it is vital that it be correct. To ensure sanity due to potential link errors the header has a cyclic redundancy check (CRC) of its own. The path this tuple takes within MINT control must be the 25 same for all packets of any given LUWU (this allows ordering of LUWU data to be preserved). Packet and SUWU headers paired with the MINT memory block address will move through a pipeline of processors. The pipeline illlows multiple CPUs to process different network transactions at valious stages ol` MINT
processing. In addition, there are multiple pipelines to provide ConCulTent 30 processing~
MINT control 20 selects an unused internal link 24 and requests a path setup from the IL to the destination NIM (through the MINT attached to thatNIM). MAN switch control 21 queues the request and when, the path is available and (2) the XL 3 to the destination NIM is also available, it notifies the source 35 MINT while concurrently setting up the path. This, on average and under full load, takes 50 microseconds. Upon notification, the source MINT transmits all 3 ~

network transactions destined for that NIM, thus taking rnaximurn advantage of the path setup. The internal link handler 17 requests network lransactions from ~he MINT memory and transmits them over the path:

ILH ==> sourceIL ==~ MANS ==> destinationIL ==> XLH, 5 this XLH being attached to the destination NIM. The XLH recovers bit synchronization on the way to the destination NIM. Note that information, as it leaves the switch, simply passes through a ~INT on its way to the destination NIM. The MINT doesn't process it in any way other than to recover bit synchronization that has been lost in going through the MANS.
As informatioll (i.e., switch transactions made up of one or more network transactions) arrives at the destination NIM it is demultiplexed into network transactions (packets and SUWUs) and forwarded to the destination UIMs~ This is done "on the fly"; there is no buffering in the NIM on the way outof the network.
l~ The receiving UIM 13 will store the network transactions in its receive buffer memory 90 and recreate EUS transactions (LUWUs and SUWUs).
A LUWU may arrive at the UIM in packet sized pieces. As soon as at least part of a LUWU arrives, the UIM will notify the EUS of its existence and will, upon instructions from the EUS, transmit under the control of its DMA, partial EUS or20 whole EUS transactions into the EUS memory in DMA transfer sizes specified bythe EUS. Alternate paradigms exist for transfer from UIM to EUS. For instance, an EUS can tell the UIM ahead of time that whenever anything arlives the UIM
should transfer it to a specified buffer in EUS memory. The UIM would then not need to announce the arrival of information but would immediately transfer it to2~ the EUS.
2.~ Additional Considerations .~.1 Error Handling In order to achieve latencies in the order of hundreds of microseconds t`rom EUS memory to EUS memory, errors must be handled in a manner that 30 dif~rs from that used by conventional data networks today. In ~IAN, network transactions have a header check sequence 626 (FIG. 20) ~HCS) appended to the header and a data check sequence 646 (FIG. 20) (DCS) appended to the entire network transaction.

~ r~ r~

Consider the header first. The source UIM generates a H~S before transmission to the source NIM. At the MINT the HCS is checked and, if in error, the transaction is discarded. The destination NIM performs a similar action ~or a third time before routing the transaction to the destination UIM. This 5 scheme prevents misdelivery of information due to colTupted headers. Once a header is found to be flawed, nothing in the header can be considered reliable and the only option that MAN has is to discard the transaction.
The source UIM is also required to provide a DCS at the end of the user data~ This field is checked within the MAN network but no action is taken if 10 erTors are found. The information is delivered to the destination UIM who cancheck it an-1 take appropriate action. Its use within the network is to identify both EUSL and internal network problems.
Note that there is never any attempt within the network to correct errors using the usual automatic repeat request (ARQ) techniques found in most of 15 today's protocols. The need for low latency precludes this. Error corTecting schemes would be too costly except for the headers, and even here the time penalty may be too great as has sometimes been the case in computer systems.
However, header error corTection may be employed later if experience proves thatit is needed and time-wise possible.
~0 Consequently, MAN checks for errors and discards transactions when there is reason to suspect the validity of the headers. Beyond this, tTansactions are delivered even if flawed. This is a reasonable approach for three reasons. First, intrinsic erTor rates over optical fibers are of the same order as error rates over copper when common ARQ protocols are employed. Both are in the range of 25 10-1l bits per bit. Secondly, graphics applications (which are increasing dramatically) often can tolerate small e1Tor rates where pixel images are transmitted; a bit or two per image would usually be fine. Finally, where erTor rates need to be better than the intrinsic rates, EUS-to-EUS ARQ protocols can be used (as they are today~ to achieve these improved erTor rates.
30 2.5.2 Authentication MAN provides an authentication feature. This feature assures a destulation EUS of the identity of the source EUS for each and every ~ansaction it receives. Malicious users cannot send tTansactions with forged "signatures".
Users are also prevented from using the network free of charge; all users are 35 forced to identify themselves tTuthfully with each and every transaction that they send into the network, thus providing for accurate usage-sensitive billing. This feature also provides the prin~itive capability for other feat~l~es s~lch as virtual private networks.
When an EUS first attaches to MAN, it "logs in" to a well known and privileged Login Servel that is part of the network. The login server is in an 5 administrative terminal 350 (FIG. 15) with an attached disk memory 351. The administrative terminal 350 is accessed via an OA&M MINT processor 315 (FIG. 14) and a MINT OA&M monitor 317 in the MINT central control 20, and an OA&M cenhal control (FIG. 15). This login is achieved by the EUS (via its UIM) sending a login transaction to the server through the network. This 10 transaction contains the EUS identification number (its name), its requested virtual network, and a password~ In the NIM a port number is prefixed to the transactionbefore it is forwarded to the MINT for routing to the server. The Login Server notes the id/port pairing and informs the MINT attached to the source NIM of that pairing. It also acknowledges its receipt of the login to Ihe EUS, telling the E~US
lS that it may now use the network.
When using the network, each and every network transaction that is sent to the source NIM from the EUS has, within its header, its so~urce id plus other infom1ation in the header described below with respect to FIG. 20. The NIM prefixes the port number to the transaction and forwards it to the MINT
20 where the pairing is checked. Incorrect pairing results in the MINT discarding the transaction~ In the MINT, the prefixed source port number is replaced with a destination port number before it is sent to the destination NIM. The destination NIM uses this destination port number to complete the routing to the destinationEU~.
If an EUS wishes to disconnect from the network, it "logs off" in a manner similar to its login. The Login Server informs the MINT of this and the MINT removes the id/port information, thus rendering that port inactive.
2.5.3 Guaranteed Orderin~
From NIM to NIM the notion of a LUWU does not e~cist. Even 30 though LUWUs lose their identity within the NIM to NIM envelope, the packets of a given LUWU must follow a path through predetermined ~Ls and MINTs.
This allows ordering of packets arriving at UIMs to be preserved for a LUWU.
~Iowever, packets may be discarded due to flawed headers. The UIM checks for missing packets and notifies the EUS in the event that this occurs.

~ ~ ~ r`~ J

- 2~ -2.5.4 Virtual Circuits and Infinite LUWUs The network does not set up a circuit through to the destination but rather switches groups of packets and SUWUs as resources become available.
This does not prevent the EUS from setting up virtual circuits; for e~ample the 5 EUS could write an infinite size LUWU with the appropriate UIM tirning parameters. Such a data stream would appear to the EUS as a virtual circuit while to the network it would be a never ending LUVVU that moves packets at a dme.
The implementation of this concept must be handled between the UIl~I and the EUS protocols since there may be many different types of EUS and UIMs. The 10 end-user can be transmitting multiple data streams to any number of destinations at any one time. These streams are multiplexed on packet and SUWUs boundaries on the transmit link between the source UIM and the source NIM.
A parameter, to be adjusted for optimum performance as the system is loaded, limits the time (equivalent to limiting the length of the data stream) that 1~ one MINT caul send data to a NIM in order to free that NIM to receive data from other MINTs~ An initial value of 2 milliseconds aMears reasonable based on simulations. The value can be adjusted dynamically in response to traffic patterns in the system, with different values possible for different MINTs or NIMs, and at different times of the day or different days of the week.

The MAN switch (MANS) is the fast circuit switch at the center of the MAN hub. It interconnects the MINTs, and all end-user ttansactions must pass through it. The MANS consists of the switch fabric itself, (called the datanetwork or DNet), plus the switch control complex (SCC), a collection of 23 controllers and links that operate the DNet fabric. The SCC must leceive requests from the MINTs to connect or disconnect pairs of incoming and outgoing internal links aLs), execute the requests when possible, and inform the MINTs of the outcome o~ their requests.
These appnrently straightforward operations must be carried O-lt at a 3~ high perfonnance level. The demands of the MAN switching problem are discussed in the next section. Next, Section 3.2 presents the fundamentals of a distributed-control circuit-switched network that is offered as a basis for a solution to such sw;tching demands. Section 3.3 tailors this approach to the specific needs of MAN and covers some aspects of the control structure that are critical to high 3~ performnnce.

rut ~ 3 3.1 Characterizin~ the Problem First we estimate some numelical values for the demands on the MAN switch. Nominally, the MANS must establish or remove a transaction's connection in fractions of a millisecond in a network with hundreds of pOltS, each S running at 150 Mb/s and each carrying thousands of separately switched transactions per second. Millions of transaction requests per second imply a distributed control stlllcture where numerous pipelined controllers process transaction requests in parallel.
The combination of so m~my ports each running a high speed has 10 several implications. First, the bandwidth of the network must be at least 150 Gb/s, thus requiring multiple data paths (nominally 150 Mb/s) through the network. Second, a 150 Mb/s synchronous network would be difficult ~o build (although an asynchronous network needs to recover clock or phase). Th*d, since inband signaling creates a more complex (self-routing) network fabric and requires 15 buffering within the netwol*, an out-of-band signaling (separate control) approach is desirable.
In M~N, transaction lengths are expected to vary by several orders of magnitude. These transactions can share a single switch, as discussed hereinafter with adequate delay performance for small transactions. The advantage of a 20 single fabric is that data streams do not have to be separated before switching and recombined afterwards.
A problem to be dealt with is the condition where the requested output port is busy. To set up a connection, the given input and output ports must be concurrently idle (the so-called concurrency problem~. If an idle input (output) ~5 port waits for the output (input) to become idle, the waiting port is inefficiently utilized and other transactions needing that port are delayed. If the idle port is instead given to other transactions, the original busy destination port may havebecome idle and busy again in the meantime, thus adding further delay to the original transaction. The delay problem is worse when the port is busy with a 30 large transaction.
Any concurrency resolution strategy requires that each port's busy/idle stntus be supplied to the controllers concerned with it. To maintain a high transaction rate, this status update mechanism must operate with short delays.
If transaction times are short and most delays are caused by busy 35 ports, an absolutely non-blocking network topology is not required, but the blocking probability should be small enough so as not to add much to delays or ~2~ 3 ~

burden the SCC with excessive unachievable connection requests.
Broadcast (one to many) connections are a desirable network capability. However, even if the network supports broadcasting, the conc-lrrencyproblem (here even worse with the many ports involved) must be handled without disruptin" other traffic. This seems to rule out the simple strategy of waiting for all destination ports to become idle and broadcasting to all of them at once.
Regardless of the special needs of the MAN network, the MANS
satisfies the general requirements for any practical network. Startup costs are reasonable. The network is growable without disr~lpting existing fabric. The 10 topology is inherently efficient in its use of fabric and circuit boards. Finally, the concerns of operational availability - reliability, fault tolerance, failure-p,roup sizes, and ease of diagnosis and repair - are met.
3.2 General Approach - A Distributed-Control Circuit-Switchin~ Network In this section we describe the basic approach used in the MANS. It lS specifically addresses the means by which a large network can be rLm by a group o~ controllers operating in parallel and independently of one another. The distribut~d control mechanism is described in terms of two-stage networks, but with n schellle to extend the approach to multistage networks. Section 3.3 presents details of the specific design for MAN .
A major advantage of our approach is that the plurality of network controllers operate independently of one another using only local information.
Throughput (measured in transactions) is increased because controllers do not burden each other with queries and responses. Also the delay in setting up or tearing down connections is reduced because the number of sequential control 25 steps is rninimi~ed. All this is possible because the network fabric is partitioned into disjoint subsets, each of which is controlled solely by its own controller that uses ,lobnl static information, such as the internal connection pattern of the data network 120, but only local dynamic (network state) data. Thus, each controller sees and handles only those colmection requests that use the portion of the 30 network for which it is responsible, and monitors the state of only that portion.
3~2~1 Partitionin~ Two-Sta~e Networks Consider the 9 x 9 two-stage network example in FIG. 6 comprising thre~ input switches ISl (101), IS2 (102), and IS3 (103), and three output switches OS I (104), OS2 (105), and OS3 (106). We can partition its fabric into three disjoint subsets. Each subset includes the fabric in a given second stage switch(OS,) plus the fabric (or crosspoints) in the first stage switches (ISy) that connect to the links going to that second stage switch. For example, in F~G. 6, the partition or subset associated with OSl (104) is shown by a dashed line around the crosspoints in OSI plus dashed lines around three crosspoints in each of thefirst stage switches (101,102,103) (those crosspoints being those that connect to 5 the linlcs to OSI).
Now, consider a controller for this subset of the ne~work. It would be resyons;ble ~or connections from any inlet to any outlet Oll OSl. The controllerwould maintain busy/idle status for the crosspoints it controlled. This inforrnation is clearly enough to tell whether a connection is possible. ~'or example, suppose l0 an inlet Oll ISI is to be connected to an outlet on OS1. We assume that the request is from the inlet, which must be idle. The outlet can be determined to be idle from outlet busyfidle status memory or else from the status of the outlet'sthree crosspoints in OS1 (all three must be idle). Next, the status of the link between ISl and OS1 must be checked. This link will be idle if the two lS crosspoillts Oll both ends of the link, which connect the link to the remaining two inlets and outlets, are all idle. If the inlet, outlet, and link are all idle, acrosspoint in each of IS1 and OS1 can be closed to set up the requested connection.
Note that this activity can proceed independently of activities in the 20 other subsets (disjoint) of the network. The reason is that the network has only two stages, so the inlet switches may be partitioned according to their links tosecond stage switches. In theory this approach applies to any two-sta~e network,but the usefulness of the scheme depends on the network's blocking characteristics. The network in FIG. 6 would block too frequently, because it can ~5 comlect at most one inlet on a given inlet switch to an outlet on a given second stage switch.
A two-stage network, referred to hereinafter as a Richards network, of the type described in G. W. Richards et al.: "A Two-Stage Rearrangeable Broadcast Switching Network, IEEE Transactions on Communications, v. COM-~) 33, no~ 10, October 1985, avoids this problem by wiring each inlet port tomultiple appearances spread over different inlet switches. The distributed control scheme operates on a Richards network, even though MAN may not use such Richnrds network features as broadcast and rearrangement.

r~, 3 3.2.2 Control Network 3.2.2 1 Function In MAN, requests for connections come from inlets, actually, the central conhol 20 of the MINTs. These requests must be distributed to the properswitch controller via a control network (C~et). In FIG. 7, both the DNet 120 forcircuit-switched transactions and the control CNet 130 are shown. The DNet is a two-stage rearrangeably non-blocking Richards network. Each switch 121,123 includes a rudimentary crosspoint controller (XPC) 122,124 which accepts commands to connect a specified inlet on the switch to a specified outlet by 10 closing the proper crosspoint. The first and second stages' XPCs (121,123) are abbreviated lSC (first stage controller) and 2SC (second stage controller) respectively.
On the right side of the CNet are 64 MANS controllers 140 (MANSCs) corresponding to and controll;ng 64 disjoint subsets of the DNet, 15 partitioned by second stage outlet switches as described earlier. Since the controllers and their network are overlaid on the DNe~ and no~ integral to the data fabric, they could be replaced by a single controller in applications where transaction throughput is not critical.
3.2.2.2 Structure The CNet shown in FIG. 7 has special properties. It consists of three similar parts 130,134,135, corresponding to flows of messages from a MINT to a MANSC, orders from a MANSC to an XPC, and acknowledgments or negative acknowledgments ACKs/NAKs from a MANSC to a MINT; acknowledge (ACK), negative acknowledge (NAK). Each of the networks 130,134 and 135 is a 25 statistically multiplexed time-division switch, and comprises a bus 132, a g,lOUp of interfaces 133 for buffering control data to a destination or from a source, and a bus arbiter controller (BAC) 131. The bus arbiter controller controls tlle gating of control data from an input to the bus. The address of the destination selects the output to which the bus is to be gated. The output is comlected to a controller 30 (network 130: a MANSC 140) or an interface (networks 131 and 132, interfaces similar to interface 133). The request inputs and ACK/NAK responses are concentrated by control data concentrators and distributors 136,138, each control data concentrator concentrating data to or from four MINTs. The control data concentrators and distributGrs simply buffer data from or to the MINTs. The 35 interfaces 133 in the CNet handle statistical demultiplexing and multiplexing(steering and merging) of control messages. Note that the interconnections made by bus 132 for a given request message in the DNet are the same as those requested in the CNet.
3.2.3 Connection Re~uest Scenario The connection request scenario begins with a connection request message aniving at the left of CNet 130 in a multiplexed stream on one of the messa~,e input links 137 from one of the data concentrators 136. This r~quest includes the DNet 120 inlet and outlet to be connected. In the CNet 130, the message is routed to the appropriate link 139 on the right side of the CNet according to the outlet to be connected, which is uniquely associated with a 10 particular second stage switch and therefore also with a particular MANS
controller 140.
This ~IANSC consults a static global directory (such as a ROM) to find which first stage switches carry the requesting inlet. Independently of other MANSCs, it IIOW checks dynamic local data to see whether the outlet is idle and l~ ally links from the proper first stage switches are idle. If the required resources are idle, the MANSC sends a crosspoint connect order to its own second stage outlet switch plus another order to the proper first stage switch via network 134.
The latter order includes a header to route it to the correct first stage.
This approach can achieve extremely high transaction throughput for 20 several reasons. All network controllers can operate in parallel, independently of one another, and need not wait for one another's data or go-aheads. Each controller sees only those requests for which it is responsible and does not waste time with other messages. Each controller's operations are inherently sequentialand independent functions and thus may be pipelined with more than one request in progress nt a time~
The above scenario is not the only possibility. Variables to be considered include broadcast -vs- point-to-point inlets, outlets -vs- inlet-oriented connection requests, rearrangement -vs- blocking-allowed operation, and disposition of blocked or busy connect requests~ Although these choices are 3~ nlrendy settled for MAN, all these options can be handled with the control topology presented, simply by changing the logic in the MANSCs.
4 Mllltistage Networks This control struc~ure is extendible to multistage Richards networks, wh~re switches in a given stage are recursively implemented as two-stage networks~ The resultant CNet is one in which connection requests pass sequentially through S-1 controllers in an S-stage network, where again controllers are responsible for disjoint silbsets of the network and operate independently, thus retaining the high throughput potential.
3.3 Specific Design for MAN
In this section we first examine those system attributes that drive the 5 design of the MANS. Next, the data and control networks are described. Finallythe functions of the MANS controller are discussed in detail, including design tradeoffs that affect performance.
3~3.1 System Attributes 3.3.1.1 Extemal and Internal Interfaces FIG. 7 illustrates a prototypical fully-grown MANS composed of a DNet 121 with 1024 incoming and 1024 outgoing ILs and CNet 22 comprising three control message networks 130,133,134 each with 64 incoming and 64 outgoing message links. The ILs are partitioned into groups of 4, one group for each of 256 MINTs. 1'he DNet is a two-stage network of 64 first stage 1~ switches 121 and 64 second stage switches 123. Each switch includes an XPC 122 that takes commands to open and close crosspoints. For each of the DNet's 64 second stages 123, there is an associated MANSC 140 with a dedicated control link to the XPC 124 in its second stage switch.
Each control link and status link interfaces 4 MINTs to the CNet's 20 left-to-right and right-to-left switch planes via 4:1 control data concentrators and distributors 136,138 which are also part of the CNet 22. These may be regarded either as remote concentrators in each 4-MINT group or as parts of their associated 1:64 CNet 130,135 stages; in the present embodiment, they are part ofthe CNet. A third 64x64 plane 134 of the CNet gives each MANSC 140 a 25 dedicated right-to-left interface 133 with one link to each of the 64 lSCs 122.
Each MINT 11 interfaces with the MANS 10 through its four ILs 12, its request signal to control data concentrator 136, and the acknowledge signal received back from control data distributor 138.
Alternately, each CNet could have 256 instead of 64 ports on its 30 MINT side, eliminating the concentrators.
3~3~1~? Siæe The MANS diagram in FI~. 7 represents a network needed to switch dnta traffic for up to 20,000 EUSs~ Each NIM is expected to handle and concentrate the traffic of 10 to 20 EUSs onto a 150 Mb/s XL, giving about 1000 35 ,XLs (rounded off in binary to 1024). Each MINT serves 4 XLs for a total of 256 ~INTs. Each MINT also handles 4 ILs, each with an input and an output r~

termination on the DNet portion of the MANS. The data network thus has 1024 inputs and 1024 Outp~lts. Internal DNet link sizing will be addressed later.
Failure-group size and other considerations lead to a DNet with 32 input links on each first stage switch 121, each of which links is connected to two 5 such switches. There are 16 outputs on each second stage switch 123 of the DNet. Thus, there are 64 of each type of switch and also 64 MANSCs 140 in the CNet, one per second stage switch.
3~3.1~3 Traffic and Consolida The "natural" EUS hansactions of data to be switched vary in size by 10 several orders of magnitude, from SUWUs of a few hundred bits to LUWUs a megabit or more. As explained in Section 2.1.1, MAN breaks larger EUS
transactions into network transactions or packets of at most a few thousand bitseach. But the MANS deals with the switch transaction, defined as the burst of data that passes through one MANS connection per one connect (and disconnect) 15 request. Switch transactions can vary in size from a single SUWU to several LUWUs (many packets) for reasons about to be given. For the rest of Section 3, "transaction" means "switch transaction" except as noted.
For a given total data rate through the MANS, the transaction throughput late (transactions/second) varies inversely with the transaction size.
20 Thus, the smaller the transaction size, the greater the transaction throughput must be to maintain the data rate. This throughput is limited by the individual throughputs of the MANSCs (whose connect/disconnect processing delays reduce the effective IL bandwidth) and also by concurrency resolution (waiting for busyoutlets). Each MANSC's overhead per transaction is of course independent of 25 transaction size.
Although larger transactions reduce the transaction throughput demands, they will add more delays to other transactions by holding outlets and fabric paths for longer times. A compromise is needed -- small transactions reduce blocking and concurrency delays, but large transactions ease the MANSC
30 and MINT workloads and improve the DNet duty cycle. The answer is to let MAN dynan1ically adjust its transaction sizes under varying loads for the best performance.
The DNet is large enough to handle the offered load, so the switching control complex's (SCC) throughput is the limiting factor. Under light traffic, the 35 switch transactions will be short, mostly single SUWUs and packets. As ~raffic levels increase so does the transaction rate. As the SCC transaction rate capacity r~ 3 is approached, transaction sizes are dynamically increased to maintain the transaction rate just below the point where the SCC would overload. This is achieved automatically by the consolidation control strategy, whereby each MINT
always transmits in a single switch transaction all available SUWUs and packets targeted for a given destination, even though each burst may contain the whole or ~arts of several EUS transactions~ Further increases in traffic will increase the size, but not so much the number, of transactions. Thus fabric and IL utilization improve with load, while the SCC's workload increases only slightly. Section 3.3.3.~.1 explains the feedback mechanism that controls transaction size.
10 3.3~1.4 Performance Goals Nevertheless, MAN's data throughput depends on extremely high performance of individual SCC control elements. For example, each ~PC 122,1~4 in the data switch will be ordered to set and clear at least 67,000 connections per second. Clearly, each request must be handled in at most a few 1~ microseconds.
Likewise, the MANSCs' functions must be done quickly. We assume that these steps will be pipelined; then the sum of the step processing times will contribute to connect and disconnect delays, and the maximum of these step timeswill limit transaction throughput. We aim to hold the maximum and sum to a few 20 microseconds and a few tens of microseconds, respectively.
The resolution of the concurrency problem must also be quick and efficient. Busy/idle status of destination terminals will have to be determined in about 6 microseconds, and the control strategy must avoid burdening MANSCs with unfulfillable connection requests.
?:~ ~ One final performance issue relates to the CNet itself. The network nnd its access links must run at high speeds (probably at least 10 Mb/s) to keepcontrol message transmit times small and so that links will run at low occupancies to minimize the contention delays from statistical multiplexing.
3.3.2 Data Network (DNet) The DNet is a Richards two-stage rearrangeably non-blocking broadcast network. This topology was chosen not so much for its broadcast cnpnbility, but because its two-stage str~lcture allows the network to be partitioned illtO disjoint subsets for distrib~ted control.

, 3.3.2.1 Design Parameters The capabilities of the Richards network derive from the assignment of inlets to multiple appearances on different first stage switches according to a definite pattern. The particular assignment pattern chosen! the number m of S multiple appearances per inlet, the total number of inlets, and the number of links between first and second stage switches determine the maximum number of outlets per second stage switch permitted for the network to be realTangeably non-blocking.
The DNet in rIG. 7 has 1024 inlets, each with two appearances on the 10 first stage switches. There are two links between each first and second stageswitch. These parameters along with the pattern of distributing the inlets ensure that with 16 outlets per second stage switch the network will be rearrangeably non-blocking for broadcast.
Since MAN does not use broadcast or rearrangement, those parameters lS not justified by failure-group or other considerations may be changed as moreexperience is obtained. For example, if a failure group size of 32 were deemed tolerable, each second stage switch could have 32 outputs, thus reducing the number of second stage switches by a factor of 2. Making such a change would depend on the ability of the SCC control elements each to handle twice as mllch 20 traffic. In addition, blocking probabilities would increase and it would have to be determined that such an increase would not significantly detract from the performance of the network.
The network has 64 first stage switches 121 and 64 second stage switches 123. Since each inlet has two appearances and there are two links 25 between first and second stage switches, each first stage switch has 32 inlets ~md 128 outlets and each second stage has 128 inlets and 16 outlets.
3.3.2.2 Operation Since each inlet has two appearances and since there are two links between each first and second stage switch, any outlet switch can access any inlet 30 on any one of four links. The association of inlets to links is algorithmic and thus may be computed or alternatively read from a table. The path hunt involves simply choosing an idle link (if one exists) from among the four link possibilities.
If none of the four links is idle, a re-attempt to make a connection is n~ade later and is requested by the same MINT. Alternatively, existing 35 connections could be re-arranged to remove the blocking condition, a simple procedure in a Richards network. However, rerouting a connection in midstream ~ 3 ~

could introduce a phase glitch beyond the outlet circuit's ability to recover phase and clock. Thus with present circuitry, it is preferable not to rlln the MANS as a rearrangeable switch.
Each switch in the DNet has an XPC 122,124 on the CNet, which receives messa;,es from the MANSCs telling which crosspoints to operate. No high-level logic is performed by these controllers.
3.3.3 Control Network and MANS Controller Functions 3.3.3.1 Control Network (CNet) The CNet 130,13~,135 briefly described earlier, interconnects the 10 MINTs, MANSCs, and lSCs. It must carry three types of messages --connect/disconnect orders from MINTs to MANSCs using block 130, crosspoint orders from MANSCs to lSCs using block 134, and ACKs and N~Ks from MANSCs back to the MINTs using block 135. The CNet shown in FIG. 7 has three corresponding planes or sections. The private MANS 140--2SC 124 links 15 nre shown but are not considered part of the CNet as no switching is required.
In this embodiment, the 256 MINTs access the CNet in groups of 4, resulting in 64 input paths to and 64 output paths from the network. The bus elements in the control network perform merging and routing of message streams.
A request message from a MINT includes the ID of the outlet port to be ~0 connected or disconnected~ Since the MANSCs are associated one-to-one with second stage switches, this outlet specification identifies the proper MANSC to which the message is routed.
The MANSCs transmit acknowledgment (ACK), negative acknowledgment (NAK), and lSC command messages via the right-to-left portion of the CNet ~blocks 13~,135). These messages will also be formatted with header int`ormation to route the messages to the specified MINTs and lSCs~
The CNet and its messages raise significant technical challenges~
Contention problems in the CNet may mirror those of the entire MANS, requiring their own conculTency solution~ These are apparent in the Control Network shown ~) in FIG~ 7~ The control data concentrators 136 from four lines into one interface mny hnve contention where more than one message tries to arrive at one time~
The data concentrators 136 have storage for one request from each of the four connected MINTs, and the MINTs ensure that consecutive re~quests are sent sufficiently far apart that the previous request from a MINT has already been 3~ passed on by the concentrator before the next arrives~ The MINTs time out if no acknowledgement of a request is received within a prespecified time.

~3 ~ 3 Alternatively, the control data concentrators 136 could simply "OR" any requestsreceived on any input to the output; garbled requests would be ignored and not ackllowledged, leading to a time out.
Functiollally what is needed inside the blocks 130,134,135 is a :~ micro-LAN specialized for tiny fixed-length packets and low contention and minimal delay~ Ring nets are easy to interconnect, grow gracefully, and permit simplç tokenless add/drop protocols, but they are ill-suited for so many closelypacked nodes and have intolerable end-to-end delays.
Since the longes~ message (a MINT's connect order) has under 32 l0 bits, a parallel bus 132 serves as a CNet fabric that can send a complete message in one cycle. Its arbitration controller 131, in handling contention for the bus, would automatically solve contention for the receivers. Bus components are duplicated for reliability (not shown).
3,? MAN Switch Controller (MANSC) Operations 1~ FIGS. ~ and 9 show a flowchart of the MANSC's high level t`unctiolls. Mçssages to each ~IANSC 140 include a connect/disconnect bit, ~UWUIpacket bit, and the IDs of the MANS input and output ports involved.
3~3.3.~1 Request Queues; Consolidation (Intake Section~ FIG. 8) Since the rate of message arrivals at each MANSC 140 can exceed its 20 message processing rate, a MANSC provides entrance queues for its messages.
Connect and disconnect requests are handled separately. Colmects are not enqueued unless their requested outlets are idle.
Pliority and regular packet connect messages are provided separate queues 150,152 so that priority packets can be given higher priority. An entry ?~; from the reg~ll.ar packet queue 152 is processed only if the priolity queue 1~0 is ~mpty. This millimizes the priority packets' processing delays at the expense ofthe regular packets', but it is estimated that priority traffic will not us~lally be henYy çnough to add much to packet delays. Even so, delays are likely to be mord user-tolerable with the lower priority large data transactions than with priority trnnsnctions. Also, if a packet is one of many pieces of a LUWU, any ~iven pn&ket delny may have no final effect since end-to-end LUWU delay depends only on the last packet.
Both the priority and reg~lLIr packet queues are short, intendçd only to cover short-term random fl~lctuations in message anivals. If the short-term rate of 3~ arrival3 e~ceeds the MANSC's processing rate, the regular paclcet queue and perhaps the priority queue will overflow. In such cases a control negative - 36 - 1 3 ~ 3 acknowledge (C~AK) is retllrned to the requesting MINT, indicating a MANSC
overload. This is no catastrophe, but rather the feedback mechanism in the consolidation strategy that increases switch transaction sizes as traffic gets heavier.
Each MINT combines into one transaction all available packets targeted for a 5 given DNet outlet. Thus, if a connection request by the MINT results in a CNAK, the next request for the same destination may represent more data to be shipped duling the connection, provided more packets of the LUWUs have arrived at the MINT in the meantime. Consolidation need not always add to LUWU
transmission delay, since a LUWU's last packet might not be affected. This 10 scheme dynamically increases effective packet (transaction) sizes to accommodate the processing capability of the MANSCs.
The priority queue is lon~er than the regular packet queue to reduce the odds of sending a priority CNAK due to random bursts of requests. Priority packets are less likely to benefit from consolidation than packets recombining into 15 their original LUWUs; this supports the separate, high-pliority queue. To force the MINTs to consolidate more packets, we may build the regular packet queue shorter than it "ought" to be. Simulations have indicated that a priority queue of 4 requests capacity and a regular queue of 8 requests capacity is appropriate. Thesizes of both queues affect system performance and can be fine-tuned with real ~0 experience with a system.
Priority is deterrnined by a priority indicator in the type of service indication 623 (FIG. 20~. Voice packets are given pliority because of their required low delay. In alternative arrangements, all single packet transactions tSUWUs) may be given priority. Because charges are likely to be higher for high 25 priority service, users will be discouraged from demanding high priority service for the many packets of a long LUWU.
3.3.3.2.2 Busy/Idle Check When a connect request first arrives at a MANSC, it is detected in test 153 which differentiates it from a disconnect request. The busy/idle status of 30 the destination outlet is checked (test 154). If the destination is busy, a busy negative acknowledge (BNAK) is returned (action 156) to the requesting MINT, which will try again later. Test 158 selects the proper queue (priority or regular packet). The queue is tested (160,162) to see if it is f;lll. If the specified queue is full, a CNAK (control negative acknowledge) is returned (action 164). Otherwise 35 the request is enqueued in queue 150 or 152 and simultaneously the destination is seized (marked busy) (action 166 or 167). Note that an overworked (full queues) MANSC can still return BNAKs, and that both BNAKs and CNAKs tend to increase transaction sizes through consolidation.
The busy/idle check and BNAK handle the concurrency problem. The penalty paid for this approach is that a MINT-to-MANS IL is unusable during the 5 interval between a MINl"s issning a connect request for that IL and its receipt of an ACK or BNAK. Also the CNet jams up with BNAKs and failing requests under heavy l~LL~NS loads. Busyfidle checks must be done quickly so as not to degrade the colmection request throughput and IL utilization; this explains the performance of a busy test before enqueuing. It may be desirable further to use 10 separate hardware to pre-test outlets for concurrency. Such a procedure would relieve the ~IANSCs and CNets from repeated BNAK requests, increase the successful request throughput, and pelmit the MANS to saturate at a higher percentage of its theoretical aggregate bandwidth. `
3.3 3 ~.3 Path Hunt - MANSC Service Section (FIG. 9) l~i Priority block 168 gives highest priority to requests from disconnect queue 170, lower priority to requests from the priority queue 150, and lowest pliOlity to reqnests from the packet queue 152. When a connect request is unlonded from the priority or the regular packet queue, its requested oudet porthas already been seized earlier (action 166 or 167), and the MANSC hunts for a ~0 path through the DNet. This merely involves looking up first the two inlets to which the incoming IL is connected (action 17~) to find the four links with access to that incoming IL and checking their busy status (test 174). If all four are busy, a blocked-fabric NAK (fabric NAK or FNAK) fabric blocking negative acknowledge (F~NAK) is returned to the requesting MINT, which will try the request again later (action 178). Also the seized destination outlet is released~mnrked idle) (action 176)~ We expect FNAKs to be rare.
If the fonr links are not all busy, an idle one is chosen and seized, first a first stage inlet, ~hen a link (action 180); both are marked busy (action 182).
The inlet and link choices are stored (action 184). Now the MANSC uses its 3n dedicated control path to send a crosspoint connect order to the XPC in its nssocinted second stage switch (action 188); this connects the chosen link to the outlet~ At the same time another crosspoint order is sent (via the right-to-leftCNet plane 134) to the lSC (action 186) reqnired to connect the link to the inlet port. Once this order arrives at the lSC ~test 190), an ACK is returned to the 3~ originating MINT (action 192)~

~ 3~7~

3.3.3.2.4 Disconnects To release network resources as quickly as possible, disconnect requests are handled separately from connect requests and at top priority. They have a separate quelle 170, built 16 words long (same as the number of outlets) so 5 it can never over~ow. A disconnect is detected in test 153 which receives requests from the MINT and separates connect from disconnect requests. The outlet is released and the request placecl in disconnect queue 170 (action 193).Now a new connect request for this same outlet can be accepted even though the outlet is not yet physically disconnected. Due to its higher priority, the disconnect 10 will tear down the switch connections before the new request tries to reconnect the outlet. Once enqueued, a disconnect can always be executed. Only the outlet ID
is needed to identify the spent connection; the MANSC recalls this connection's choice of link and crosspoints *om local memory (action 195), marks these links idle (action 196) and sends the two XPC orders to release them tactions 186 and 15 188). Thereafter, test 1~0 controls the wait for an acknowledgment from the first stage controller and the ACK is sent to the MINT (action 192). If there is no record of this connection, the MANSC returns a "Sanity NAK." The MANSC
senses status from the outlet's phase alignment and scramble circuit (PASC) 290 to verify that some data transfer took place.
20 3.3.3.2.5 Parallel Pipelining Except for seizure and release of resources, the above steps for one request are independent of other requests' steps in the same MANSC and thus are pipelined to increase MANSC throughput. Still more power is achieved through parallel operations; the path hunt begins at the same time as the busy/idle check.
25 Note that the transaction rate depends on the longest step in a pipelined process, but the response time for one given transaction (from request to ACK or NAK~ is the sum of the step times involved. The latter is improved by parallelism but not by pipelining.
3.3.~ Error Detection and Diagnosis ~0 Costly hardware, message bits, and time-wasting protocols to the CNet and its nodes to verify every little message are avoided. For example, eachcrosspoint order from a MANSC to an XPC does not require an echo of the command or even an ACK in return. Instead, MANSCs does assume that messages arrive uncorrupted and are acted on correctly, until evidence to the 35 contrary arrives from outside. Audits and cross-checks are enabled only when there is cause for suspicion. The end users, NIMs and MINTs soon discover a ~t~ 3 defect in the MANS or its control complex and identify the subset of MANS ports involved. Then the diagnostic task is to isolate the problem for repair and interim work-around.
Once a portion of the MANS is suspect, temporary auditing modes 5 could be turned Oll to catch the guilty parties. For suspected lSCs and MANSC,these modes require use of the command ACKS and echoing. Special messages such as crosspoint audits may also be passed through the CNet. This should be done while still c~rying a light load of user traffic.
Before engaging these internal self-tests (or perhaps to eliminate them 10 entirely), MAN can run experiments on the MANS to pinpoint the failed circuit, using the MlNTs, ILs, and NIMs. For example, if 75% of the test SUWUs sent from a given IL make it to a given outlet, we would conclude that one of the twolinks from one of that IL's two first stages is defective. (Note this test must be run under load, lest the deterrninistic MANSC always select the same link.) 15 Further experiments can isolate that link. But if several MINTs are tested and none can send to a particular outlet, then that outlet is marked "out of service" to all MINTs and suspicion is now focussed on that second stage and its MANSC.
If other outlets on that stage work, the fault is in the second stage's fablic. These tests use the status lead fiom each of a MANSC's 16 P~SC.
Coordinating the independent MINTs and NIMs to run these tests requires a central intelligence with low-bandwidth message links to all MINTs and NIMs. Given inter-MINT connectivity (see FIG. 15), any MINT with the needed firmware can take on a diagnostic task. NIMs must be involved anyway to tell whether test SUWUs reach their destinations. Of course any NIM on a working 25 MINT can exchange messages with any other such NIM.
3.4 MAN Switch Controller FIG. 25 is a diagram of MANSC 140. This is the unit which sends control instructions to data network 120 to set up or tear down circuit connections.
It receives orders from control network 130 via link 139 and sends 30 acknowledgments both positive and negative back to the requesting MINTs l l via control network 135. It also sends instructions to first stage switch controllers via control network 134 to first stage switch controller 122 and directly to the second stage controller 124 that is associated with the specific MANSC 140.
Inputs are received from inlet 139 at a request intake port 1402. They 35 are processed by intake conirol 1404 to see if the requested outlet is busy. The outlet memory 1406 contains busy/idle indications of the outlets for which an ~3~ ~7~

MANSC 140 is responsible. If the outlet is idle a connect re~uest is placed intoone of two queues 150 and 1~2 previously described with respect to FIG. 8. If the request is for a disconnect, the request is placed in disconnect queue 170. The outlet map 1406 is updated to mark a disconnected outlet idle. The acknowledge 5 response unit 140~ sends negative acknowledgments if a request is received with an error or if a comlect request is made to a busy outlet or if the appropriate queue 1~0 or 152 is full. Acknowledgment responses are sent via control network 135 back to the requesting MINT 11 via distributor 138. All of these actions are performed under the control of intake control 1404.
Service control 1420 controls the setup of paths in data network 120 and the updating of outlet memory 1406 for those circumstances in which no path is available in the data network between the requesting input linlc and an available output link. The intake control also updates outlet memory 1406 on connect requests so that a request which is already in the queue will block another request 15 for the same output link.
Service control 1420 e~amines requests in the three queues 150, 152, and 170. Disconnect requests are always given the highest priority. For disconnect requests, the link memory 1424 and path memory 1426 are examined to see which links should be made idle. The instructions for idling these links are '~O sent to first stage switches from first stage switch order port 1428 and theinstructions to second stage switches are sent from second stage switch order port 1430. For connect requests, the static map 1422 is consulted to see which links can be used to set up a path from the requesting input link to the requested output link. Link map 1424 is then consulted to see if appropriate links are 2~ available and if so these links are m~uked busy. Path memory 1426 is updated to show that this path has been set up so that on a subsequent disconnect order theappropriate lillks can be made idle. All of these actions are performed ~mder the control of service control 1420.
Controllers 1420 and 1404 may be a single controller or separate 30 controllers and may be program controlled or controlled by sequential logic.
There is a great need for a very high-speed operations in these controlle~s because of the high throughput demanded which makes a hard wired controller preferable.
3.5 Control Network Control message network 130 (FIG. 7) takes OlltpUtS 137 from data 35 concentrators 136 and transmits these outputs, representing connect or disconnect requests, to MAN switch controllers 140. Outputs of concentrators 136 are stored temporarily in source registers 133. Bus access controller 131 polls these sollrce registers 133 to see if any have a request to be transmitted~ Such requests are then placed on bus 132 whose output is stored temporarily in intermediate register 141. B~ls access controller 131 then sends outputs from register 141 tothe appropriate one of the M~N switch controllers 140 via link 139 by placing the output of register 141 on bus 142 connected to link 139. The action is ac.-omplished in three phases. During the first phase, the output of register 133 is placed on the bus 132, thence gated to register 141. During the second phase, the output of register 141 is placed on bus 142 and delivered to a MAN switch 10 controller 140. During the third phase, the MAN switch controller signals thesource register 133 as to whether the controller has received the request; if so, source register 133 can accept a new input from control data concentrator 136.
Otherwise, source register 133 retains the same request data and the bus access controller 131 will repeat the transmission later. The three phases may occur 15 simultaneously for three separate requests. Contrcl networks 134 and 135 opera~e in a fashion similar to control network 130.
3.6 Summary A structure to meet the large bandwidth and transaction throughpul requirements for the MANS has been described. The data switch fabric is a two-20 stage Richards network, chosen because its low blocking probability permits aparallel, pipelined distributed switch control complex (SCC). The SCC includes XPCs in all first and second stage switches, an intelligent controller MANSC with each second stage, and the CNet that ties the control pieces together and links them to the MINTs.

The memory and interface module (MINT) provides receive interfaces for the external fiber-optic links, buffer memory, control for routing and link protocols, and transmitters to send collected data over the links to the MAN
switch. In the present design, each MINT serves four network interface modules 30 (NIMs) and has four links to the switch. The MINT is a data switching module. 4.1 Basic Eunctions The basic functions of the MINT are to provide the following:
1. A fiber-optic receiver and link protocol handler for each NIM.
2. A link handler and transmitter for each link to the switch. 5 3. A buffer memory to accumulate packets awaiting transmission across the switch.

13~L~rI~

4. An inter~ace to the controller for the switch to direct the setllp and teardown of network paths.
5~ Control for address translation, routing, making efficient use of the switch,orderly transmission of accllmulated packets, and management of buffer memory.
6. An inter~ace for operation, administration, and maintenance of the overall system.
7. A. COlltlOI Chanltel tO each NIM for operation, administration, and maintenance functions.
lO 4.2 Data Flow In order to understand the descriptions of the individual functional units that make up a MINT, it is first necessary to have a basic understanding of the general flow of data and control. FIG. 10 shows an overall view of the MINT.Data enters the MINT on a high-speed (100-150 Mbit/s) data channel 3 from 15 ench NIM. This data is in the form of packets, on the order of 8 Kilobits long, ench with its own header containing routing information. The hardware allows forpacket sizes in increments of 512 bits to a maximum of 128 Kilobits. Small pncket sizes, however, reduce throughput due to the per-packet processing required. Large rnaximum packet sizes result in wasted memory for transactions 20 of less than a ma~imum size packet. The link terminates on an external link handler 16 (XLH), which retains a copy of the pertinent header fields as it deposits the entire packet into the buffer memory. This header information, together with the buffer memory address and length, is then passed to the central control 20. The central control determines the destination NIM fiom the address 25 and adds this block to the list of blocks (if any) awaiting transmission to this same destination. The central control also sends a connection request to the switch colltroller ;f there is not already a request outstanding. When the central control receives an acknowled"ement froIl1 the switch controller that a connection request has been satisfied, the central control transmits the list of memory blocks 30 to the proper internal link handler 17 (ILH). The ILH reads the stored data from memory and trnnsmits it at high speed (probably the same speed as the incoming links) to the MAN switch, which directs it to its destination. As the blocks aretr~msmitted, the ILH informs the central control so that the blocks can be added to thc list of free blocks available for use by the XLHs.

~3~3~

4~3 l~emory Modllles The buffer memory 18 (FIG. 4) of the MINT 11 satisfies three requirements:
1. T~le quantity of memory provides sufficient buffer space to hold the data 5accumulated (for all destinations) while awaiting switch setups.
2. The memory bandwidth is adequate to support simultaneous activity on all eight links (four receiving and four transmitting).
3. Tl1e memory access provides for efficient streaming of data to and from the link handlers.
lO 4.3.1 Or~anization Because of the amoul1t of memory required (Megabytes), it is desirable to employ conventional high-density dynamic rauldom access memory ~DR~M) parts. Thus, high bandwidth can be achieved only by making the memor,v wide. The memory is therefore organized into 16 modules 201,...,202 1~ which make up a composite 512-bit word. As will be seen below, memory accesses are organized in a synchronous fashion so that no module ever receives successive requests witl1out sufficient time to perform the required cycles. Therange of memo}y for one MINT 11 in a typical MAN application is 16-64 ~lbytes. The number is sensitive to the speed of application of flow control in 20 overload situations.
4.3.2 Time Slot Assi~ners The time slot assigners 203,...,2Q4 (TSAs) combine the functions of a conventional DRAM controller and a specialized 8-channel DMA controller. Each rec~ives rea~/write requests from logic associated with the Data Transport ~ing 19 ~see 4.4, below). Its setllp commands come from dedicated control time slots on this same ring.
3 2.1 Control .
Pron1 a control viewpoint, the TS~ appears as a set of registers as shown in FIG~ ll. For each XLH there is an associated address register 210 and 30 count register 211. Each ILH also has address 213 and count 214 registers, but in nddition hns registers containing the next address 215 and count 216, thus allowing n series of blocks to be read from memory in a continuous stream with no inter-block gaps. A special set of registers 220-226 allows the MINT's central control section to access any of the internal registers in the TSA or to perform a 3~ directed read or write of any particular word in memory. These registers include a write data register 220 and read data register 221, a memory address - ~4 -register 222, channel status register 223, error register 22~, rnemory refresh row address register 225, and diagnostic control register 226.
4.3.2.2 (~peration In normal operation, the TSA 203 receives only four order types from 5 ~le ring interface logic: (1) "write" requests for data received by an ~LH, (2) "read" requests for an ILH, (3) "new address" commands issued by either an XLH
or an ILH, and (4) "idle cycle" il~dications which tell the TSA to perforn~ a re~resh cycle or other special operation. Each order is accompanied by the identity of the link handler involved and, in the case of "write" and "new address" requests, by10 32 bits of data.
For a "write" operation, the TSA 203 simply performs a memory write cycle using the address from the register associated with the indicated XLH 16 and the data provided by the ring interface logic. It then increments theaddress register and decrements the count register. The count register is used in 15 this case only as Q safety check since the XLH should provide a new address before overflowing the cuIrent block.
For a "read" operation, the TSA 203 must first check whether the channel for this ILH is active. If it is, the TSA performs a memory read cycle using the address from the register for this ILH 17 and presents the data to the20 ring interface logic. It also increments the address register and decrements the count register. In any case, the TSA provides the interface logic with two "tag"bits which indicate (1) no data available, (2) data available, (3) first word ofpacket available, or (4) last word of packet available. For case (4), the TSA will load the ILH's address 214 and count 213 registers from its "next address" 216 25 and "next count" 215 registers, provided that these registers have been loaded by the ILH. If they have not, the TSA marks the channel "inactive."
From the above descriptions, the function of a "new address"
operation can be inferred. The TSA 203 receives the link identity, a 24-bit address, and an 8-bit count. For an XLH 16, it simply loads the associated 30 registers. In the case of an ILH 17, the TSA mllst check whether the channel is active. If it is not, then the normal address 214 and count 213 registers are loaded and the channel is marked active. If the channel is currently active, then the "next address" 216 and "next count" 215 registers must be loaded instead of the normaladdress and count registers.

~ 3~733 In an alternative embodiment, the two tag bits are also stored in buf~er memory 201,...,202. Advantageously, this permits packet si~es that are not limited to being a multiple of the overall width of the memory (512 bits). In addition, the ILH 17 need not provide the actual length of the packet when reading it, thus 5 relieving the central conhol 20 of the need to pass along this information to the ILH~
4~ Data Transport Ring It is the job of the Data Transport Ring 19 to carry control commands and high-speed data between the link handlers 16,17 and the memory lO modules ~01,~,202. The ring provides sufficient bandwidth to allow all the links to run simultaneously, but carefully apportions this bandwidth so that circuits connectin~, to the ring are never required to transfer data in high-speed bursts~
Instead, a fi~ed time slot cycle is employed that assigns slots to each circuit at well-spnced intervals~ The use of this fixed cycle also means that source and l~i clestinntion addresses need not be carlied on the ring itself since they can be readily determined nt any point by a properly synchronized counter~
4.4.1 Electrical Description The ring is 32 data bits wide and ;s clocked at 24 MHz~ This bnndwidth is sufficient to support data rates of up to 150 Mbit/s~ In addition to 20 the data bits, the rings contains four parity bits, two tag bits, a sync bit to identify the start of a superframe, and a clock signaL Within the ring, single-ended ECL
circuitry is used for all signals except the clock, which is differential ECL~ The ring interface logic provides connecting circuits with TTL-compatible signal levels.
2~ 4.4.2 Time Slot Sequencing Requirements In order to meet the above objectives, the time slot cycle is subject to a number of constraints:
1. l)uring each complete cycle there must be a unique time slot for each combination of source and destination.
3~ 2. Each connecting circuit must see its data time slots appearing at reasonably regular intervals. Specifically, each circuit must have a certain minimum interval between its data time slots.
3. Each link handler must see its data time slots in numerical order by memory modnle number~ (This is to avoid making the link handler shuffle 3S n Sl~-bit word~) 4. Each TSA must have a known interval during which it can perform a c~

refresh cycle or other miscellaneous memory operation.
5. Since the TSAs in the memory modules must examine every control time slot, there must also be a minimum interval between control time slots.
4.4.3 Time Slot ~ycle Table I shows one data frame of a timing cycle which meets these requirements. One data frame consists of a total of 80 time slots, of which 64 are ~Ised for data and the remaining 16 for control. The table shows, for each memory mod~lle TSA the slot during which it receives data from each XLH to be written into memory and during which it must supply data that was read from 10 memory for each ILH. Every fifth slot is a control time slot during which theindicated link handler broadcasts control orders to all the TSAs. For the purposes of this table, XLHs and ILHs are numbered 0-3, and TSAs are numbered 0-15.
TSA 0, for example, during time slot 0 receives data from XLH 0 and must supply data for ILH 0. During slot 17, TSA 0 per~orms sin1ilar operations for l5 XLH 2 and ILH 2. Slot 46 is used for XLH 1 and ILH 1, and slot 63 is used forXLH 3 and ILH 3. The re-use of the same time slot for reading and writing is permissible since XLHs never read from memory and ILHs never write, thus effectively doubling the data bandwidth of the ring.
The control time slots are assigned, in sequence, to the four XLHs, 20 the four ILHs, and the central control (CC). With these nine entities sharing the control time slots, the control frame is 45 time slots long. The 80-slot data frame and the 45-slot control frame come into alignment every 720 time slots. This period is the superframe and is marked by the superframe sync signal.
There is a subtle synchronization condition that must also be met for 25 the ILHs. The words of a block must be sent in sequence beginning with word 0, regardless of where in the ring timing cycle the order was received. To assist in meeting this requiren1ent, the ring interface circuitry provides a special "word 0"
sync signal for each ILH. For example, in the timing cycle of I`able I a new address might be sent by ILH 0 during time slot 24 (its control time slot). It is 3~) necessary to ensure that TS~ number 0 is the first TS~ to act on this new address (l~quirement 3 in section 4.4.2) even though the data time slots for reads from TSAs numbered 5 through 15 for ILH 0 immediately follow time slot 24.
Since the number of time slots in the superframe, 720, exceeds the number of elements on the ring, 25, it is apparent that the logical time slots do 35 not have a permanent existence; each time slot is, in effect, created at a particular physical location on the ring and propagates around the ring until it returns to this location, where it vanishes. The effective creation point is different for data time slots than for control time slots.

rd7 3~ 3 TABLE I
RING TIME SLOT ASSIGNMENT
Write to From Read from To Control Time Slot TSA XLH TSA ILH Slot Sollrce 29 ILHl 6 ~ 6 0 41 15 1 1~ 1 54 XLHl 57 8 ` 2 8 2 - so -66 4 1 ~ 1 74 ILHl 7~ lS O 15 0 1~ 77 12 2 12 2 ~3~73.3 4.4.3.1 Data Time Slots Data time slots can be considered to originate at the owning XLH. A
data time slot is used to carry incoming data to its assigned memory module, at which point it is re-used to carry outgoing data to the corresponding ILH. Since5 XLHs never receive infolmatioll from a data time slot, the ring can be considered to be logically broken (for data time slots only) between the ILHs and ~he XLHs.The two tag bits identify the contents of the data time slots as t`ollows:

1 1 Empty 10 Data 01 First word of packet 00 Last word of packet The "first word of packet" is sent only by memory module 0 when it sends the first word of a packet to an ILH. The "last word of packet" indication is sent only 1~ by memoly module 15 when it sends the end of a packet to an ILH.
.3.2 Control Time Slots Control time slots originate and telminate at the station of central control 20 on the ring. The link handlers use their assigned control slots only to broadcast orders to the TSAs. The CC is assigned every ninth control time slot.
70 The TSAs receive orders from all control time slots and send responses back to the CC ol~ the CC control time slot.
The two tag bits identify the contents of a control time slot as follows:

1 1 Empty '~S 10 Data (to or from CC) 01 Order 00 Address & count (from a link handler) .5 E~ternal Link Handler The principal function of the XLH is to terminate the incoming high-3~ speed datn channel from a NIM, deposit the data in the MINT's buffer memory,and pass the necessary information to the MINT's central control 20 so that the data can be forwarded to its destination. In addition, the XLH terminates an incoming low-speed control channel that is multiplexed on the fiber link. ~ome of the functions assigned to the low-speed control channel are the transmission of the NIM status and control of flow in the network. It should be noted that the XLH
is only terminating the incoming fiber fiom the NIM. Transmission to the NIM is 5 handled by the internal link handler nnd the phase alignment and scrambler circuit that will be described later. The XLH uses an onboard processor 268 to interfaceto the hardware of the MINT central control 20. The four 20 ~bit/sec links coming from this processor provide the connectivity to the central control section of the MINT. FIG. 12 shows an overall view of the XLH.
10 4.5.1 Link Interface The XLH contains the fiber optic receiver, clocl;: recovery circuit and descrambler circuit needed to recover data from the fiber. After the data clock is recovered (block 250) and the data descrambled (block 252) the data is then converted from selial to pauallel and demultiplexed (block 254) into the high-15 speed data channel and the low-speed data channel. Low level protocol processing is then performed on the data on the high-speed data channel (block 256) as described in 5. This results in a data stream consisting of only packet data. The stream of packet data then goes through a ~irst-in-first-out (FIFO) queue 258 to a data steering circuit 260 which steers the header into the20 header F~FO 266 and sends the complete packet to the XLH's ring interface 262.
4.5.2 Ring Interface The ling interface 262 logic controls transfer of data from the packet FIFO 258 in the link interface to the MINT's buffer memory. It provides the following functions:
25 1. Establishing and maintaining synchronization with the ring's timing cycle.2. Transfer of data from the link interface FIFO to the proper ring time slots.
3. Sending a new address to the memory TS~s when the end of a packet is encountered.
It should be noted that resynchronization with the ring's 16-word (per XL~I) 30 timing cycle will have to be performed during the processing of a packet whenever the link interface FIFO becomes temporarily empty. This will be a normnl occurrence since the ring's bandwidth is higher than the link's transmission rate. The ring and TSA, however, are designed to accommodate gaps in the data stream. Thus, resynchronization consists simply of waiting for 35 data to become available and for the ring cycle to return to the proper word number, marking the intervening time slots "empty." For example, if the 3 7 ~3 FIFO 258 becomes empty when a word destined for the fifth memory module is needed, it is necessary to ens~lre that the next word actually sent goes to thatmemory module, in order to preserve the overall sequellce.
4~5.3 Control The control portion of the XLH is responsible for replenishing the fiee block PIFO 270 and passing the header information about each packet received to the MINT's central control 20 (FIG. 4).
~5~3~1 Header Processing At the same time a packet is being transmitted on the ring, the header 1~ of the packet is deposited in the header FIFO 266 that is subsequently read by the XLH processor 26~ In this header are the source and destination address fields, which the central control will require for routing. In addition, the header checksunl is verified to ensure that these fields have not been corrupted. The header infon1lation is then packaged with a memory block descriptor (address andl~ length) and sent in a message to the central control 20 (FIG. 4).
.3._ Interactioll with Central Control There are only two basic interacdons with the MINT's central controh The ~LH control attempts to keep its free-block FIFO 270 full with block addresses obtained from the memory manager, and it passes header inforMation 20 and memory block descriptors to the central control so that the block can be routed to its destination. The block addresses are subsequently placed on the ring 19 by ring interface 262 upon receipt of the address frolll control sequencer 272. Both interactions with the central control are carried out over links from XLH processor 268 to the appropliate sections of the central control.4.~S Internal Link Handler . . .
The internal link handler (ILH) (FIG. 13) is the first part of what can be considered a distributed link controller. At any instant in time this distributed link controller consists of a particular ILH, a path through the switch fabric and a particular Phase Alignment and Scrambler circuit 290 (PASC). The PASC is 30 described in section 6.1. It is the PASC that is actually responsible for thetrnnsmission of optical signals over the return fiber of fiber pair 3 to the NIMfrom the MINT. The information that is transmitted over the fiber comes from the MANS 10, which receives inputs at different times from the ILHs sending to that NIM. This kind of distlibuted link controller is necessclry since p~th lengths 3~ through the MAN switch fabric are not all equal. If the PASC did not align all of the inforrnation coming from different ILHs to the same reference clock, ~i 3 ~

informatioll received by the NIM would be continually changing its phase and bit alignment.
The combination of the ILH with the PASC is in many ways a mirror image of the XLH. The ILH receives lists of block descriptors from the central 5 control, reads these blocks from memory, and transmits the data over the serial link to the switch. As data is received from memory, the associated block descriptor is sent to the central control's memory manager so that the block canbe returned to the free list.
The ILH differs from the XLH in that the ILH performs no special 10 header processing, and the TSAs provide the ILH with additional pipelining sothat multiple blocks can be transmitted as a continuous stream if desired.
4.6.1 Link Interface The link interface 289 provides the serial transmitter for the data channel. Data is transmitted in a frame-synchronous format compatible with the 15 link data format described in 5. Since the data is received ~rom the ring interface 2~0 (see below) asynchronously and at a rate somewhat higher that the link's average data rate, the link interface contains a FIFO 282 to provide speed matching and frame synchronization. The data is received from ~IINT memory via data ring interface 280, stored in FIFO 282, is processed by level 1 and 2 20 protocol handler 286, and is transmitted to MAN switch 10 through the parallel to serial converter 288 within link interface 289.
4.6.2 Ring Interface The ring interface 280 logic controls the hansfer of data from the MINT's buffer memory to the FIFO in the link interface. It provides the 25 following funchons:
1. Establishing and maintaining synchronization with the ring's timing cycle.
2. Transfer of data from the ring to the link interface FIFO during the proper ring time slots.
3. Notifying the control section when the last word of a packet (memory block) is received.
4. Sending a new address and count (if available) to the memory TSAs 203,...,20~ (FIG. 10) when the last word of a packet is received and the condition of the FIFO 282 is such that the new packet will not cause an overflow.
35 Unlike the XLH, the ILH relies on the TSAs to ensure that data words are received in sequence and with no gaps within a block. Thus, maintaining word 7 ~ ~

synchroni~ation in this Gase consists simply of looking for llnexpected empty data time slots.
4~6.3 Control The control portion of the ILH, controlled by sequencer 283 is S responsible for providing the ring interface with block descriptors received ViA the processor link interface 284 from the central control and stored therefrom in address FIFO 285, notifying the central contl ol via the processor l;nk inter~ace when blocks have been retrieved from memory, and notifying the central control 20 when transmission of the final block is complete.
10 4~6~3~1 Interaction with Central Control There are only three basic interactions with the MINT's central control:
1~ Receiving lists of block descriptors.
2. Informing the memory manager of blocks that have been retrieved from memory~
3. Informing the switch request queue manager when all blocks have been transmitted.
In the present design, all of these interactions are carried out over Transputer links to the appropriate sections of the central control.
20 4.6.3.2 Interaction with TSAs Like the XLH, the ILH uses its control time slots to send block descriptors (address and lengths) to the TSAs. When the TSAs receive a descriptor from an ILH, however, they will immediately begin reading the block from memory and placing the data on the ring~ The length field from M ILH is 25 significant and determines the number of words that will be read by each TSA
before moving on to the neYt block The TSAs also provide each ILH w;th registers to hold the ne,Yt address and length, so that successive blocks c~m betransMitted withollt gaps~ Flow control is the responsibility of the ILH, however, nnd a new descriptor should not be sent to the TSAs until there is enough room in 30 the packet FIFO 282 to compensate for reframing time and the difference in transmission rates~
4~7 MINT Central Control FM~ 14 is a block diagram of MINT central control 20~ This central control is connected to the four XLH 16s of the MINT, the four ILH 17s of the 35 MINT, to data concentrator 136 and distributor 138 of the switch control (SeeFIG~ 7), and to an OA&M central control 352 shown in FIG~ 15. The relationship ~ 3 ~ 3 of the central control 20 with other onits will first be discussed.
The MINT central control communicates with XLH 16 to provi~e memory block addresses for use by the XLH in order to store incominD data in the ~IINT mell1ory. XLH 16 communicates with the MINT central control to provide the header of a packet to be stored in MINT memory, and the address where that packet is to be stored. Memory manager 302 of MINT central control ~0 communicates with ILH 17 to receive information that memory has been released by an ILH because the message stored in those memory blocks has been delivered, so that the released memory can be reused.
When queue manager 311 recognizes that the first network unit arriving for a particular NIM has been queued in switch unit queue 314, which contains FIFO queues 316 for each possible destination NIM, queue manager 311 sends a request to switch setup control 313 to request a connection in MAN
switch 10 to that NIM. The request is stored in one of the queues 318 (priority)15 and 31~ (regular) of switch setuy control 313. Switch setup control 313 administers these requests according to their priority and sends requests to MANswitch lO, specifically to switch control data concentrator 136. For normal loads, the queues 318 and 312 should be almost empty since requests can normally be made almost immediately and will generally be processed by the appropriate 20 MAN switch controller. For overload conditions, the queues 318 and 312 becomea means for deferring transrnission of lower priority packets while retaining the relatively fast transmission of priority packets. If experience so dictates, it may be desirable to move a request from the regular queue to the priority queue if a priority packet for that destination NIM is received. Requests queued in ~5 queues 318 and 312 do not tie up an IL, an ILH, and an output link of circuitswitch 10; this is in contrast to requests in the queues 150,152 (FIG. 8) of an ~IAN switch controller 140 (FIG. 7).
When switch setup control 313 recognizes that a connection has been established in switch 10, it notifies NIM queue manager 311. The ILH 17 ~() receives data from a FIFO queue 316 in switch onit queue 31~ from NI~ queue rnannger 311 to identify a queue of the memory locations of data packets which mny be trMlsmitted to the circuit switch, and for each packet, a list of one or more ports on the NIM to which that packet is to be transmitted. NIM queue manager 311 then causes ILH 17 to prefix the port number(s) to each packet and 35 to transmit data for each packet from memory 18 to switch 10. The ILH then proceeds to transmit the packets of the queue and when it has completed this task, 3 ~

notifies the switch set~lp control 313 that the connection in the circuit switch may be disconnected and notifies memory manager 302 of the identity of the blocks ofmemory that can now be released because the data has been transmitted.
The MINT central control uses a plurality of high speed processors 5 each of which have one or more input/output ports. The specific processor usedin this implementation is the Transputer manufactured by INMOS Corporation.
This processor has four input/outout ports. Such a processor can meet the processing demands of the MINT central control.
Packets come into the four XLHs 16. There are four XLH managers 10 305, source checkers 307, routers 309, and OA&M MINT processors 315, one corresponding to each XLH within the MINT; these processors, operating in parallel to process the data enteling each XLH increase the total data processing capacity of the MINT central control.
The header for each packet entering an XLH is transmitted along with 15 the address where that packet is being stored directly to an associated ~LH
manager 305, if the header has passed the hardware check of the cyclic redundancy code (CRC) of the header performed by the XLH. If that CRC check fails, the packet is discarded by the XLH which recycles the allocated memory block. The XLH manager passes the header and the identity of allocated memory 20 for the packet to the source checker 307~ The XLH manager recycles memory blocks if any of the source checker, router, or NIM queue manager find it impossible to transmit the packet to a destination. Recycled memory blocks get used before memory blocks allocated by the memory manager. Source checker 307 checks whether the source of the packet is properly logged in and whether ~5 that source has access to the virtual network of the packet. Source checker 307 passes information about the packet, including the packet address in MINT
memory, to router 309 which translates the packet group identification, effectively a virtual network name, and the destination name of the packet in order to find out which OlltpUt link this packet should be sent on. Router 309 passes the 30 identification of the output link to NIM queue manager 311 which identifies and chains packets received by the four XLHs of this MINT which are headed for a common OUtpllt link. After the first packet to a NIM queue has been received, the NIM queu~ manager 311 sends a switch setup request to switch setup control 313 to request a connection to that NIM. NIM queue manager 311 chains these 3~ packets in FIFO queues 316 of switch unit queue 314 so that when a switch connection is made in the circuit switch 10, all of these packets may be sent over ~ js~ ~ ~ r1 ~ ~

that connection at one time. Output control signal distributor 138 of the switchcontrol 22 replies with an acknowledgment when it has set up a connection. This acknowledgment is received by switch setup control 313 which informs NIM
queue mana~"er 311. NIM queue manager 311 then informs ILH 17 of the list of 5 chained packets in order that ILH 17 may transmit all of these packets. When ILH 17 has completed the transmission of this set of chained packets over the circuit switch, it informs switch setup control 313 to request a disconnect of the connection in switch 10, and informs memory manager 301 that the memory which was used for storing the data of the message is now available -for use for a 10 new message. ~Iemory manager 301 sends this release information to memory distributor 303 which distributes memory to the various XLH managers 305 for allocating memory to the XLHs.
Source checker 307 also passes billing info1mation to operation, administration and maintenance (OA&M) MINT processor 315 in order to perform 15 billing for that packet and to accumulate appropriate statistics for checking on the data flow within the MINT and, after combination with other statistics, in the MAN network. Router 309 also informs (OA&M) MINT processor 315 of the destination of the packet so that the OA&M MINT processor can keep track of data concerning packet destinations for subsequent traffic analysis. The output of ~0 the four OA&M MINT processors 315 are sent to MINT OA&M monitor 317 which summarizes the data collected by the four OA&M MINT processors for subsequent transmission to OA&M central control 352 (FIG. 14).
MINT OA&M monitor 317 also receives information from OA&M
central control 352 ~or making changes via OA~M MINT processor 315 in the 2~ router 309 data; these changes reflect additional terminals added to the network, the movement of logical terminals (i.e., terminals associated with a particular llser) from one physical port to another, or the removal of physical terminals from thenetwol*. Data is also provided from the OA&M central control 352 via the ~IINI operation, OA&M monitor and the OA&M MINT processor 315 to source ~0 checker 307 for such data as a logical user's password and physical port as well as datn concerning the privileges of each logical user.
4~8 MINT Operation, Administration, and Maintenance Control System FIG. 15 is a block diagram of the maintenance and control system of the MAN network. Operation, administration, and maintenance (OA&M) 35 system 350 is connected to a plurality of OA&M central controls 352. These OA&M controls are each connected to a plurality of MINTs, and within each d MINT, to the MINT OA&M mollitor 317 of MINT central control 20. Since many of the messages fiom OA&M system 350 must be distributed to all the MINTs, the various OA&M central contlols are interconnected by a data rin ,.
This data ring transIlùts such data as the identification of the network interface module, hence tlle identification of the output link, of each physical port that is added to the network so that this information may be stored in the router processors 309 of every MINT in the MAN hub.
~ LINKS
5~1 Link Re~uirements The links in the MAN system are used to transmit packets between the EUS and the NIlM (EUSL) (links 14) and between the NIM and the M~N
hub (~L) (links 3). Although the operation and the characteristics of the the data thnt is trallsferled on these links varies slightly with the particular application, the folmat used on the links is the same. Having the formats be the same makes it 13 possible use common hardware and softwaue.
The link format is designed to provide the following features.
1. It provides a high da~a rate packet channel.
2~ It is compatible with the proposed Metrobus "OS-1" format.
3. Interfacing is easier because of the word oriented synchronous format, 20 4. It defines how "packets" are delimited.
5. It includes a CRC for an entire "packet" (and another for the header.) 6. The forn1at insures transparency of the data within a "packet".
7. The format provides a low bandwidth channel for flow con~rol signaling.
. Additional low bandwidth channels c~m be added easily.
9. Data scrambling insures good transition density for clock recovery.
.~ M~N Link Description and Reasoning From a performance point of view, the faster the links are the better ~tAN will perform. This desire to operate the links as fast as possible is temper~d by the fact that faster links cost more. A reasonable tradeoff between ~û spe~d nnd cost is to use LED ùansmitters (like the AT~T ODL-200) and multimode fiber. The use of ODL-200 tr~msmitters and receivers puts an upper limit on the link speed of about 200Mbit/sec. From the MAN architecture point of view, the exact data rate of the links is not important since MAN does not dosynchronous switching. The data rate for the MAN links was chosen to be the 35 same as the data rate of the Metrobus Lightwave System "OS-1" link. The Metrobus format is described in M. S. Schaefer: "Synchronous Optical ~ 3 Transmission Network for the Metrob~ls Lightwave Network", IEEE International Communications Conference, June 1987, Paper 30B.l.l. Another data rate (and format) that could be used in MAN will come from the specification of S~NET, a link layer protocol specified by Bell Communications Research Corp. for 150 5 Mbit/sec ullchannelized links.
5.2.1 Level 1 Link Format The MAN network uses the low level link format of Met~obus.
Information on the link is carried by a simple frame that is continuously repeated.
The frame consists of 88 - 16 bit words. The first word contains a frarning 10 sequPnce and 4 parity bits. In addition to this first word, three other words are overhead words. These overhead words, which are used for internode communications in the Metrobus implementation, are not used by MAN for the sake of Mehobus compatibility. The word oriented nature of the protocol makes USillg it much simpler. A simple 16 bit shift register with parallel load can be15 used to transmit and a similar shift register with parallel read out can be used to receive. At the 146.432Mbit/sec. link data rate, a 16 bit word is transmitted orreceived every lO9ns. This approach makes it possible to implement much of the link formatting hardware at conventional TTL clock rates. The word oriented nature of the protocol does put some restrictions on the way the link is used, 20 however. To keep the complexity of the hardware reasonable it is necessary to use the bandwidth of the link in units of 16 bit words.
5.2.2 Level 2 Link Format The link is used to move "packets", the basic unit of information transfer in MAN. To identify packets, the format includes the specification of 25 "SYNC" words and an "IDLE" word. When no packets aue being transmitted tlle "IDLE" word will fill all of the words that make up the primary channel bandwidth (words not reserved for other purposes). Packets are deli~nited by a leading START SYNC and a trailing END_SYNC word. This scheme works well as long as the words with special meanings are never contained in the data within 30 a packet. Since restricting the data that can be sent in a packet is an unreasonable restriction, a tr~msparent data transfer technique must be used. MAN links employ a very simple word stuffing transparency technique. Within the packet data, any occurrence of a special meaning word, like the START_SYNC word, is preceded by another special word the "DLE" word. This word stuffing transparency was 35 chosen because of the simplicity of implementation. This protocol requires simpler, lower speed logic than is required for bit stuffing protocols like ~IDLC.

~ ~ 37~

The technique itself is similar to the time proven techniques used in IBM's BISYNC links. In addition to the word st~lffing used to ensure transparency, "FILL" words are inserted if the data rate of the source is slightly less than the link data rate.
The last word in any packet is a cyclic redundancy check (CRC) word~ This word is used to insure the that any colTuption of the data in a packet can be detected~ The CE~C word is computed on all of the data in the packet, excluding any special words like "DLE" that may need to be inserted in tlle datastream for transparency or other reasons~ The polynomial that is used to compute10 the CRC word is the CRC-16 standard~
To ensure ~ood transition density for the optical receivers all of the data is scramble~l (e~g~, block 296, FIG. 13) prior to transmission~ The scrambling makes it less likely that long sequences of ones or zeros will be transmitted on the link even thouah they may be quite common in the data actually being 15 transmitted~ The scrambler and desGrambler (e~g~, block 252, FIG~ 12) are well known in the art~ The descrambler design is self synchronizing, which makes it possible to recover from occasional bit errors without having to restart the descralllblen ~2.3 Low Speed Channels and Flow Control ~0 Not all of the payload words in the level 1 format are used for the level 2 format that carries packets~ Additional channels are included on the link by dedicating particular words within the frame. These low rate channels 255,295(FIGS. 12 and 13) are used for MAN network control purposes. A packet delimitin~, scheme similar to that used on the primary data channel is used on these low rnte chnnnels. The dedicated words that make up low rate channels can be filrther divided down into individual bits for very low bandwidth channels like the flow control channeL The flow control channel is used on the MAN EUSL
~between the EUS and the NIM) to provide hardware level flow controL The flow control channel (bit) from the NIM to the EUS, indicates to the EUS link 30 trnnsmitter whether or not it is allowed to transmit more inforn~ation~ The design of the NI~I is such that sufficient storage is available to absorb any data that is tr~nsmitted prior to the EUS transmitter actually stopping after flow control isnsserted~ Data transmission can be stopped either between packets or in the middle of a packet transmission~ If it is between packets, the next packet will not 3~ be sent until flow control is turned deasserted~ If flow control is asserted in the middle of a packet, it is necessary to suspend data transmission immediately and 7 ~ 3 start sending the "Special FILL" code word. This code word, like all others, is escaped with the "DLE" code word when it appears in the body of a packet.

The MAN switch, as described in section 3, is an asynchronous space 5 switch fabric with a very fast setup controller. The data fabric oF the switch is design to reliably propagate digital signals with data rates from DC to in excess of 200Mbits/second. Since many paths can simultaneously exist through the fabric, the aggregate bandwidth requirements of the MAN hub can be easily meet by the fabric. Tnis simple data fabric is not without drawbacks however. Because of 10 mechanical and electrical constraints in implementing the fabric, it is not possible for all paths through the switch to incur the same amount of delay. Because the variations in path delay between different paths may be much greater than the bit time of the data going through the switch, it is not possible to do synchronous switching. Any time that a path is setup from a particular ILH in a MINT to an 15 output port of the switch, there is no guarantee that data transmitted over that path will have the same relative phase as the data transmitted over a previous path through the switch. To use this high bandwidth switch it is therefore necessary to very quickly synchronize data coming out of a switch port to the clock being used for the synchronous link to the NIM.
20 6.1 The Phase Alignment and Scrambler Circuit (PASC) The unit that must do the synchronization of data coming from the switch and drive the outgoing link to the NIM called the Phase Alignment and Scrambler Circuit (PASC) (block 290, F~G. 13). Since the ILHs and the PASC
circuits are all part of the MAN hub, it is possible to distribute the same master 2~ clock to all of them. This has several advantages. By using the same clock reference in the PASC as is used to transmit data from the lLH, one can be sure that data can not be coming into the PASC any faster than it is being moved out of it over the link. This eliminates the need for large FIFOs and elaborate elastic store controllers in the PASC. The fact that the bit rate of all data that comes into 30 a PASC is e~cactly the the same makes the synchronization easier.
The ILH and the PASC can be thought of as a distributed link handler for the format described in the previous section. The ILH creates the basic fr,~mling pattern into which the data is inserted and transmits it through the ~abric to a PASC~ The PASC aligns this framing pattern with its own framing pattern, 35 merges in the low speed control channel and then scrambles the data for transmission.

~3~73~

The PASC synchronizes the incoming data to the reference clock by inserting an appropriate amount of delay into the data path. For this to work the ILH must be transmitting each frame with a reference clock that is slightly advanced from the reference clock used by the PASC. The number of bit times of 5 advance that the ILH requires is determined by the actual minimum delay that may be incurred in getting from the ILH to the PASC. The amount of delay that the PASC must be capable of inserting into the data path is dependent on the possible variation in path delays that may occur for different paths through theswitch.
FIG. 23 is a block diagram of an illustrative embodiment of the invention. Unaligned data enters a tapped delay line 1001. The various taps of the delay line are clocked into edge sampling latches 1003,...,1005 by a signal that is 1~0 degrees out of phase with the reference clock (REFCLK) and is designated REFCLK . The outputs of the edge sampling latches feed selection logic 15 unit 1007 whose output is used to control a selector 1013 described below.
Selection logic 1007 includes a set of internal latches for repeating the state of latches 1003,...,1005. The selection logic includes a priority circuit connected to these internal latches, for selecting the highest rank order input which carries a logical "one". The output is a coded identification of this selected input. The 20 selection logic 1007 has two gating signals: a clear signal and a signal from all of a g,roup of internal latches of the selection logic. Between data streams, the clear signal goes to a zero state causing the internal latches to accept new inputs. After the first "one" input has been received from the edge sampling latches 1003,...,1005 in response to the first pulse of a data stream, the state of the 25 transparent latches is maintained until the clear signal goes back to the zero state.
The clear signal is set by out of band circuitry which recognizes the presence of a data stream.
The OlltpUt of the tapped delay line also goes to a series of data latches 1009,...,1011. The input to the data latches is clocked by the reference30 clock. The outputs of the data latches 1009,...,1011 are the inputs to selector circuit 1013 which selects the output of one of these data latches based on the inp~lt frorn selection logic 1007 and connects this output to the output of the selector 1013, which is the bit aligned data stream as labeled on F~G. 23.
After the bits have been aligned, they are fed into a shift register (not 35 shown) with tapped outputs to feed the driver XL3. This is to al]ow data streams to be transmitted synchronously starting at sixteen bit boundaries. The operation of the shift register alld auxiliary circuitry is substantially the same as that of the tapped delay line arrangement.
The selection logic is implemented in commercially available priority selection circuits. The selector is simply a one out of eight selector controlled by the output of the selection logic. If it is necessary to have a finer alignment circuit USillg a one of sixteen selection, this can be readily implemented using the same principles~ The alTangemellt described herein appears to be especially attractive in situations where there is a common source clock and where the length of each data stream is limited~ The common source clock is required since the 10 clock is not derived from the incoming signal, but is, in fact, used to gate an incoming signal appropriately~ The limitation on the length of the block is required since a particular gating selection is maintained for the entire block so that if the block length were too long, any substantial amount of phase wandering would cause synchronism to be lost and bits to be dropped.
ile in the present embodiment, the signal is passed through a tapped delay line and is sampled by the clock and inverse clock, the alternativenrrnngeMent of passing the clock through a tapped delay line and using the delayed clocks to sample the signal could also be used in some applications~
6~2 Clock Distribution 2Q The MAN hub operation is very dependent on th'e use of a single master reference clock for all of the ILH and PASC~ units in the system~ The master clock must be distributed accurately and reliably to all of the units~ Inaddition to the basic clock frequency that must be distributed, the frame start pulse mllst be distributed to the PASC and an advanced frame start pulse must bedistlibuted to the ILH~ All of these functions are handled by using a single clock distribution link (fiber or twisted pair) going to each unit~
The infonnation that is carried on these clock distribution links comes from a single clock source~ This information can be split in the electrical and/or optict~l domain and transmitted to as many destinations as necessary~ There is no ~0 attempt to keep the information on all of the clock distribution links exactly in phase since the ILH and PASC are capable of correcting for phase differences no mntter what the reason for this difference~ The information that is transmitted is simply nlternnting ones and zeros with two exceptions~ The occurrence of two ones in a row indicates an advanced frame pulse and the occurrence of two zeroes3~ in a row indicates a nonmal frame pulse~ Each board that terminates one of these clock distribution links contains a clock recovery module~ The clock recovery 3.3~-13~

module is the same as that used for the links themselves. The clocl~ recovery module will provide a vel~ stable bit clock while additional logic extracts the appropriate frame or advanced frame from the data itself. Since the clock recovery modules will continue to oscillate at the correct frequency even without S bit transitions for several bit times, even the unlikely occurrence of a bit error will not affect the clock frequency. The logic that looks for the frame or advanced frame signal can also be made tolerant of errors since it is known that the frame pulses are periodic and extraneous pulses caused by bit errors can be ignored.
7 NETWORK INTERFACE MODUI,E
10 7.1 Overview The network interface module (NIM) connects one or more end user system links (EUSL) to one MAN e~cternal link (XL). In so doing, the NIM
performs concentration and demultiplexing of network transaction units (i.e.
packets and SUWUs), as well as insuring source identification integrity by affixing 15 a physical "source port number" to each outgoing packet. The latter function, in combination with the network registration service described in 2.4, prevents a user from masquerading as another for the purpose of gaining access to unauthorized network-provided services. The NIM thereby represents the boundary of the MAN network proper; NIMs are owned by the network provider, ~0 while UIMs (described in 8) are owned by the users themselves.
This section describes the basic functions of the NIM in more detail, and presents the NIM architecture.
7.2 Basic Functions The NIM must perform the followin;, basic functions:
2S EUS Link interfacing. One or more interfaces must be provided to EUS link(s) (see 2.2.5). The downstream link (i.e. from NIM to UIM) consists of a data channel and an out-of-band channel used by the NIM to flow control the upstream link when NIM input bùffers become full. Because the downstream link is not flow controlled, the flow control channel on the upstream linlc is unused. The 30 Data and Header Check Sequences (DCS, HCS) are generated by the UIM on the upstream link, and checked by the UIM on the downstream link.
Exte nal Link interfacing. The XL ( 2.2.6) is very similar to the EUSL, but lacks DCS checking and generation on both ends. This is to allow erroneous, but still potentially useful data to be delivered to the UIM. The destination port numbers35 in network transaction units arriving on the downstream XL are checked by the NIM, with illegal values resulting in dropped data.

7 3 ~

Concentration and demultiplexing. Networlc transaction units arriving on ~he EUSLs contend for and are statistically multiplexed to the outgoing XL. Those arriving on the XL are routed to the appropriate EUSL by mapping the destinationport mm1ber to one or more EUS links.
5 Source por~ identification. The port number of the source UIM is prepended to each network hansactioll unit going upstrean1 by port number generator 403 ~FiG. 16). This port mln1ber will be checked against the MAN address by the MINT to prevent unauthorized access to services ~including the most basic data transport service) by "imposters".
10 7.3 NIM Architecture and Operation The architecture of the NIM is depicted in FIG. 16. The following subsections briefly describe the operation of the NIM.
7~3.1 Upstream Operation Incoming network transaction units are received from the UIMs at 1~ their EUSL inter~ace 400 receivers 402, are converted to words in serial to parallel converters 404 and are accumulated in FIFO buffers 94. Each EUSL interface is Gonnected to the NIM transmit bus 95, which consists of a parallel data path, and various signals for bus arbitration and clocking. When a network transaction Ullit has been buffered, the EUSL interface 400 arbitrates for access to the transmit 20 bus 95. Arbitration proceeds in parallel with data transmission on the bus. When the current data transmission is complete, the bus arbiter awards bus ownership to one of the competing EUSL interfaces, which begins transmission. For each transacdon, the EUSL port number, inserted at the beginning of each packet by port number generator 403, is transmitted first, ~ollowed by the network '~3 trnnsaction Illlit. ~Tithin an XL interface 440, the XL transmitter 96 provides the bus clock, and perforn1s parallel to serial conversion 442 and data transmission on the upstream XL 3.
7.3.~ Downstream Oeeration Network transaction units arriving from the MINT on the downstream 3û XL 3 are received within ~L interface 440 by the XL receiver 446, which is connected via serial to parallel converter 448 to the NIM receive bus 430. The receive bus is similar to, but independent of the transmit bus. Also connected to the receive bus via a parallel to serial converter 408 are the EUSL interface transmitters 410. The XL receiver performs serial to parallel conversion, provides 3~ the receive bus clock, auld sources the incoming data onto the bus. Each EUSLinterface decodes the EUSL port number associated with the data, and forwards ~ 3~ ~3~

the data to its EUSL if appropriate. More than one EIJSL interface may forward the data if req~lired, as in a broadcast or multicast operation. l~ach decoder 409 checks the receive b~ls 430 while port number(s) are being transmitted to see ifthe followin~, packet is destined for the end lser of this EUSL interface 400; if so, the packet is forwarded to transmitter 410 for delivery to an EUSL 14. Illegal EUSL port numbers ~e.g. violations of tlle error coding scheme) res~llt in the data being dropped (i.e. not forw~rded by any l~USL interface). ~ecode block 409 is used to gate infom~ation destined for a particular EUS link from transmit bus 95to the paralleUserial converter ~08 and transmitter 410.

8.1 Overview A user hlterface module (UIM) consists of the hardware and software necessary to connect one or more end user systems (EUS), local area networks ~LAN~, or dedicated point-to-point links to a single MAN end user system link l~ (EUSL) 14. Througllollt this section, the term EUS will be used to generically refer to any of these network end user systems. Cleatly, a portion of the UIM
used to connect a particular type of EUS to MAN is dependent on the architectureof that EUS, as well as the desired pert`ormance, flexibility, and cost of the implementation~ Some of the functions provided by a UIM, however~ must be ~0 provided by every UlM in the system. It is therefore convenient to view the architecture o~ a UIM as having two distinct halves: the network interface, which provides the EUS-independent functionality, and the EUS interface, which in~plements the remainder of the UIM functions for the particular type of EUS
being connected.
Not all EUSs will require the pelformance inherent in a dedicated e~ternal link. Tlle concentration provided by a NIM (described in 7) is an appropriate way to provide access to a number of EUSs which have stringent response time Iequirements along with the instantaneous VO bandwidth necessary to effectively utilize the full MAN data rate, but which do not generate the ~n volllme of trnffic necessary to efficiently load the XL. Similarly, several EUSs or I~ANs could be connected to the same UIM via some intermediate link (or the LANs theluselves). In this scenario, the UIM acts as a multiplexer by providing several EUS (nch~nlly LAN or link) interfaces to go with one network interface.
This method is well suited to EUSs which do not allow direct connections to their systeM busses, and which provide only a link connection that is itself limited in bandwidth~ End users can provide their multiplexing or concentration at a UIM

~3~ 3~

and ~IAN can provide further multiplexillg or concentration at the NIM.
This section examines the architectures of both the network interface and EUS interface halves of the UIM. The functions provided by the network interface are descrili~ed, and the clrchitecture is presented. The heterogeneity of 5 EUSs that may be connected to MAN does not allow such a generic treatment of the EUS interfaces. Instead, the EUS interface design options are explored, and a specific example of an EUS is used to illustrate one possible EUS interface design.
8.2 UIM - Network Interface The UIM network interface implements the EUS-independent fimctions of the UIM. Each network interface connects one or more EUS
interfaces to a single MAN EUSL.
8.2.1 Basic Functions The UIM network interface must perform the following filnctions:
15 EUS Link interfacing. The interface to the EUS Link includes an optical transmitter and receiver, along with the hardware necessary to perform the link level functions required by the EUSL (e.g. CR~ generation and checking, data formatting, etc.).
Dat~ bufferin~. Outgoing network traulsaction units (i.e. packets and SUWUs) 20 must be buffered so that they may be transmitted on the fast network link without gaps. Incoming network transaction units are buffered for purposes of speed matching and level three (and above) protocol processing.
Buffer memory management. The packets of one LIJWU may anive at the receive UIM interleaved with those of another LUWU. In order to support this concurrent 25 re~eption of several LUWUs, the network interface must manage its receive buffer memory in a dynamic fashion, allowing incoming packets to be chained together into LUWUs as they arrive.
Protocol processin~. Outgoing LUWUs must be fragmented into packets for transmission into the network. Similarly, incoming packets must be recombined 30 into LUWUs for delivery to the receiving process within the EUS.
8.2.2 Architectural Options Clearly, all of the functions enumerated in the previous subsection must be perfonned in order to interface any EUS to a MAN EUSL. However, some architectural decisions must be made regarding where these functions are 35 performed; i.e., whether they are internal or external to the host itself.

The first two functions must be located external to the host, although for different reasons. The first and lowest level function, that of interfacing to the MAN EUS Link, must be implemented externally simply because it consists of special purpose hardware which is not part of a generic EUS. The EUS link S interface simply appears as a bidirectional I/O port to the remainder of the UIM
network interface. On the other hand, the second function, data buffering, cannot be implemented in existing host memory because the bandwidth requirements are too stringent. On reception, the network interface must be able to buffer incoming packets or SUWUs back-to-back at the full network data rate (150 Mb/s). This 10 data rate is such that it is generally impossible to deposit incoming packetsdirectly into EUS memory. Similar bandwidth conshaints apply to packet and SUWU transmission as well, since they must be completely buffered and then trans1nitted at the full 150 Mb/s rate~ These constraints make il desirable to provide the necessary buffer memory external to the EUS. It should be noted that15 while FI~O memory will suffice to provide the necessary speed matching for transmission, the lack of flow control on reception along with the interleaving of received packets necessitate that a larger amount of random access mémory be provided as receive buffer memory. For MAN, the size of receive buffer memory may range from 256 Kbytes to 1 Mbyte. The particular size depends on the 20 interrupt latency of the host and on the maximum size LUWU allowed by the host software.
The final two functions involve processing, which collld conceivably be performed by the host processor itself. The third f~mction, buffer memory management, involves the timely allocation and deallocation of blocks of receivebuffer memory. The latency requirement associated with the allocation operation is stringent, due once more to the high data rates and the possibility of packets arriving back-to-back. However, this can be alleviated (for reasonable burst sizes) by pre-nllocating several blocks of memory. It is possible, therefore, for the host processor to mannge the receive packet buffers. Similarly, the host processor may 30 or may not assume the burden of the fourth function, that of M~N protocol processing.
The location of these final two functions determines the level at which the EUS connects to the UIM. If the host CPU assumes the burden for packet bllffer memory management and MAN protocol processing (the "local"
35 configuration), then the unit of data transferred across the EUS interface is a packet, and the host is responsible for fragmenting and recombining LUWUs. If, ~ 3 ~

on the other hand, those functions are off-loaded to another processor in the UIM, the ~ront end processor (FEP) config~lration, the unit of data transferred across the EUS interface is a LUWU. While in theory, subject to interleaving constraints atthe EUS interface, the unit of data transferred may be any amount less than or 5 equal to the entire LUWU, and the units delivered by the transmitter need not be the same size as those accepted by the receiver, for a general and uniform solution, useful for a variety of EUSs, the LUWU is to be preferred as the basicunit. The FEP configuration offloads the majority of the processing bllrden fromthe host CPU, as well as providing for a higher level EUS interface, thereby 10 hiding the details of network operation from the host. With the FEP, the hostknows only about LUWUs, and can control their transmission and reception at a higher, less CPU intensive level.
Although a lower cost interface is possible utilizing the local configuration, the network interface architecture described in the following section 15 is a FEP configuration more characteristic of that required by some of the high performance EUS that are natural users of a MAN network. An additional reason for choosing the FEP configuration initially is that it is better suited for interfacing MAN to a LAN such as ETHERNET, in which case there is no "host CPU" to provide buffer memory management and protocol processing.
20 8.2~3 Network Interface Architect~lre The architecture of the UIM network interface is depicted in FI~. 17.
The following subsections briefly describe the operation of the UIM network interface by presenting scenarios for the transmission and reception of data. AnFEP-type architecture is employed, i.e., receive buffer memory management and 25 MAN network layer protocol processing are performed external to the host CPU
of tne EUS.
8.2.3.1 Transmission of Data The main responsibilities of the network interface on transmission are to fragment the arbitrary sized transmit user work units (UWUs) into packets (if30 necessary), encapsulate the user data in the MAN header and trailer, and transmit the data to the network. To begin transmission, a message from the EUS
requesting transmission of a LUWU traverses the EUS interface and is handled by network interface processing 450, which also implements memory management and protocol processing functions. For each packet, the protocol processor portion 35 of the interface processing 450 formulates a header and writes it into the transmit FIFO 15. Data for that packet is then transferred across the EIJS interface ~51 6 ~ ~

into the transmit FIFO 15 within link handler 460. When the packet is completelybuffered, the link handler 460 hansmits it OlltO the MAN EUS link using transmitter 454, followed by the trailer, which was computed by the link handler 460. The link is flow controlled by the NIM to ensure that the NIM
5 packet buffers do not overflow. This transmission process is repeated for eachpacket. The transmit FIFO 15 contains space for two maximum length packets so that packet transmission may occur at the maximum rate. The user is notified viathe EUS interface 451 when the transmission is complete.
8.2.3.2 Reception of Data Incoming data is received by receiver 458 and loaded at the 150 MB/s link rate into elastic buffer 462. Dual-ported video RAM is utilized for the receive buffer memory 90, and the data is unloaded from the elastic buffer and loaded into the shift register 464 of receive buffer memory 90 via its serial access port. Each packet is then transferred from the shift register into the main memory 15 array 466 of the receive buffer memory under the control of the receiver DMA
sequencer 452. The block adclresses used to perform these transfers are providedby the network interface processing arrangement 450 of UIM 13 via the buffer memory controller 456, which buffers a small number of addresses in hardware to relieve the strict latency requirements which would otherwise by imposed by 20 back-to-back SUWUs. Block 450 is composed of blocks 530, 540, 542, 550, 552, 554, 556, 558, 560, and 562 of FIG. 19. Because the network interface processinghas direct access to the buffer memory via its random access port, headers are not stripped off; rather they are placed into buffer memory along with the data. Thereceive queue manager 558 within 450 handles the headers and, with input from 25 the memory manager 550, keeps track of the various SUWUs and LUWUs as they arrive. I`he EUS is notified of the arrival of data by the network interface processing arrangement 450 via the EUS interface. The details of how data is delivered to the EUS are a function of the particular EUS interface being employed, and are described, for example, in section 8.3.3.2.
30 8.3 UIM- EUS Interfaces 8.3.1 Philosophy This section describes the "half" of the network interface that is EUS
dependent. The basic function of the EUS intelface is the delivery of data between the EUS memory and the UIM network interface, in both directions.
35 Each particular EUS interface will define the protocol to effect delivery, the format of data and control messages, and the physical path for control and data.

~ 3 ~

Each side of the interface has to implement a flow control mechanism to protect itself from being overr~ln. The EUS must be able to control its own memory and the flow of data into it from the netwonk, and the network has to be able to protect itself as well. Only at this basic filnctional level is it possible to talk about conmlonality itl EUS interfaces. EUS interfaces will be different because of EUS hardware and system software differences. The needs of the applications using the network, coupled with the capabilities of the EUS, will also force interface design decisions dealing with performance and flexibility. There will be numerous interface choices even for a single type of EUS.
This set of choices means that the interface haudware can range from sin~ple designs with few components to complex designs including sophisticated buffering and memol~ management schemes. Control functions in the interface can range from simple EUS interfaces to handling network level 3 protocols and even higller level protocols for distributed applications. Software in the EUS can 1~ also range from straightforward data transmission schemes that fit underneathe~;isting networking software, to more extensive new EUS software that would allow very fle~ible uses of the network or allow the highest performance that the network has to offer. These interfaces must be tailored to the specific existingEUS hardware and software systems, but there must also be an analysis of the ~0 cost of interface features in comparison to the benefits they would deliver to the network applications running in these EUSs.
8~3.2 EUS Interface Desi~Jn Options The tradeoff be~ween a front end processor (FEP) and EUS processing is one example of different interface approaches to accomplish the same basic function. Considervariations in receive buffering. A specialized EUS
architecture with a high performance system bus could receive network packet messnges directly from the network links. However, usually the interface will atleast buffer packet messages as they come off the link7 before they are delivered into EUS memoly~ Normally FUSs, either transmitting to or receiving from the ~0 network, do not know ~or want to know) anything about the internal packet messnge~ In that case, the receiving illterface might have to buffer multiple packets that come from the LUWU of data that is the natural sized transmission unit between the transmit and receive EUSs. Each one of these three receive buffering situations is possible and each would require a significantly different 3~ EUS interface to transfer data into the EUS memory. If the EUS has a particular need to process network packet messages and has the processing power and 3 ~

system bus performance to devote to that task then the EUS dependent portion of the network interface would be simple. However, often it will be desirable to off-load that processing into the EUS interface and improve the EUS perforrnance.
Different transmit buffering approaches also illustrate the tradeoff 5 between FEP and EUS processing. For a specialized application, an EUS with high performance processor and bus could send network packet messages directly into the network. But if the application used EUS transaction sizes that were much larger that the packet message size, it might take too rnuch of the EUS
processing to produce packet messages on its own. An FEP could offload that 10 work of doing this level 3 network protocol forrnatting. This would also be the case where the EUS wishes to be independent of the internal network message si7.e, or where it has a diverse set of network applications with a great variation in transmission size.
Depending on the hardware architecture of the EUS, and the level of 15 performance desired, there is the choice between programmed I/O and DMA to move data between EUS memory and the network interface. In the programmed VO approach, probably both control and data will move over the same physical path. In the DMA approach there will be some kind of shared memory interface to move control information in an EUS interfacing protocol, and a DMA
20 controller in the EUS interface to move data between buffer memory and EUS
memory over the EUS system bus without using EUS processor cycles.
There are several alternatives that exist for the location of EUS
buffering for network data. The data could be buffered on a front end processor network controller circuit board with its own private memory. This memory can 25 be connected to the EUS by busses using DMA transfer or dual ported memory accessed via a bus or dual ported memory located on the CPU side of a bus using private busses. The application now must access the data. Various techniques areavailable; some involve mapping the end user work space directly to the address space used by the UIM to store the data. Other techniques require the operating 30 system to further buffer the data and recopy into the user's private address space.
Options exist in writing the driver level software in the EUS that is responsible for moving control and data information over the interface. The driver could also implement the EUS interface protocol processing as well as just moving bits over the interface. For the driver to still run efficiently the protocol 35 processing in the driver might not be very flexible. For more flexibility based on a particular application, the EUS interface protocol processing could be moved up ,, r~J ~ ~

to a higher level. Closer to the application, more intelligence could be applied to the interface decisions, at the expense of more EUS processing time. The EUS
co~lld implement various interface protocol approaches for delivery of data to and from the network: prioritization, preemption, etc. Network applications that didnot requi~e such fle7iibility could use a more direct interface to the driver and the network.
So, there are a variety of choices to be made at different levels in the system in both the hardware and the software.
8.3.3 Implementation Example: SUN Workstation Interface To illustrate the EUS dependent portion of the interface we describe one specific interface. The interface is to the Sun-3 VME bus based workstationsmanufactured by Sun Microsystetlls, Inc. This is an example of a single EUS
connected to a single netwol* interface. The EUS also allows connection directlyto its system bus. The UIM hardware is envisioned as a sillgle circuit board that 1~ plugs into the VME bus system bus.
First, there follows a description of the Sun VO architecture, and then a description of the choices made in designing the interface hardware, the interface protocol, and the connection to new and existing network applications software.
20 8.3.3.1 SUN Workstation I/O ATchitecture The Sun-3's VO architect-lre, based on the VME bus structure and its memory management unit (MMU), provides a DMA approach called direct virtual memory access (DVMA~. FIG. 17 shows the Sun DVMA. DVMA allows devices on the system bus to do DMA directly to Sun processor memory, and also '~ allow main bus masters to do DMA directly to main bus sLIves without going through processor memory. It is called "virtual" because the addresses that a device on tl1e system bus uses to communicate with the kernel are virtual nddresses similM to those the CPU would use. The DVMA approach makes sure thnt nll nddresses used by devices on the bus are processed by the MMU, just as if 30 they were virtual addresses generated by the CPU. The slave decoder 512 ~FIG. 18) responds to the lowest megabyte of VME bus address space (OXOOOO
0000 -> OxOOOf ~fff, in the 32 bit VME address space) and maps this megabyte into the most significant megabyte of the system virtual address space (OxffO 0000 -> Oxfff ffff in the 28 bit virtual address space). (0~ means that the subse~uent 3~ characters are hexadecimal characters.) When the driver needs to send the buffer address to the device, it must strip off the high 8 bits from the 28 bit address, so q 3 ~

that the address that the device puts on the bus will be in the low megabyte (20bits) of the VME address space.
In FIG~ 18, the CPU ~00 drives a memory management unit 502, which is connected to a VME bus 504 and on board memory 506 that includes a buft`er ~08. The VME bus communicates with DMA devices 510. Other on board bus masters, such as an ETHERNET access chip can also access memory ~0~ via M~IU 502. Th~ls, devices can only make DVMA transfers in memory buffers that are reserved as DVMA space in these low (physical) memory areas. The kernel does however s~lpport redundant mapping of physical memory 10 pages into multiple v*tual addresses. In this way, a page of user memory (or kernel memory) can be mapped into DVMA space in such a way that the data appears in (or comes from) the address space of the process requesting that operation. The driver uses a routine called mbsetup to set up the kernel page maps to support this direct user space DVMA.
3~3.2 SUl~ UIM - EUS Interface Approach _, As mentioned above there are many OptiOllS in designing a particular inter~nce~ With the Sun-3 interface, a DMA transfer approach was designed, an interface with FEP capabilities, an interface with high performance matching thesystem bus, and an EUS software flexibility to allow various new and existing 20 network applications to use the network. FIC~. 19 shows an overview of the inter~`ace to the Sun-3.
The Sun-3's are systems with potentially many simultaneous processes running in support of the window system, and multiple Isers. The DMA and FEP
approachs were chosen to offload the Sun processor while the network transfers are tnking place. The UIM hardwclre is envisioned as a single circuit board thatplugs into tlle VME bus system bus. With the chance to connect directly to the system bus it is desirable to attempt the highest performance interface possible.
Sun's DVMA provides a mec~ms to move data efficiently to and from processor memory. There is a DMA controller 92 in the UIM (FIG. 4) to move data from 3n th~ Ul~l to EUS memory and data frorn EUS memory to the UIM over the bus, and there will be a shared memory interface to move control information in the host interfncing protocol. The front end processor (FEP) approach means that thedata from the netwol* is presented to the EUS at a higher level. Level 3 protocol processing has been perforrned and packets have been linked together into 3~ LUWUs, the user's natural sized unit of transmission. With the potential variety of network applications that could be running on the Sun the FEP approach means that EUS software does not have to be tightly coupled to the internal network packe~ forrnat.
The Sun-3 DVMA architecture will limit the EUS transaction sizes to A maximum of one megabyte~ If user buffers are not locked in, then kernel 5 buffers would be used, as an in~ermediate step between the device and the user, with the associated performance penalty for the copy operation. If transfers aregoing to be made directly to user space, using the "mbsetup" approach, the user's space will be loclced into memory, not available for swapping, during the whole transfer process. This is a tradeoff; it ties up the resources in the machine, but it 10 may be more efficient if it avoids a copy operation from some other buffer in the kernel.
The Sun system has existing network applications nlnnin~ on ETHERNET, for example, their Network File System (NFS). To run these existing applications on MAN but still leave open the possibility for new 15 applications that could use the expanded capabilities of MAN, we needed flexible EI~S software and a flexible interface protocol to be able to simultaneously handle a variety of network applications.
FIG. 19 is a functional overview of the operation and interfaces among the NIM, UIM, and EUS. The specific ~US shown in this illustrative 20 example is a Sun-3 workstation, but the principles apply to other end user systems having greater or lesser sophistication. Consider first the direction from the MINT
via the NIM and UIM to the EUS. As shown in FIG. 4, data that is received from MINT 11 over link 3 is distributed to one of a plurality of UIMs 13 over links 14 and is stored in receive buffer memory 90 of such a UIM, from which 25 data is transmitted in a pipelined fashion over ~m EUS bus 92 having a DMA
interface to the appropriate EUS. The control structure for accomplishing this transfer of data is shown in FIG. 19, which shows that the input from the MINT
is controlled by a MINT to NIM link handler 520, which transmits its output Imder the control of router 522 to one of a pl~urality of NIM to UIM link handlers 30 (N/U LH) 524. MINT/NIM link handler (M/N LH) 520 supports a variant on the Metrobus physical layer protocol. The NIM to UIM link handler 524 also supports the Metrobus physical layer protocol in this implementation, but other protocols could be supported as well. It is possible that different protocols could coexist on the same NIM. The output of the N/U LH 524 is sent over a link 14 35 to a UIM 13, where it is buffered in receive buffer memory 90 by NIM/UIM linkhandler 552. The buffer address is supplied by memory manager 550, which ' 3 ~

manages free and allocated paclcet buffer lists. The status of the packet reception is obtained by N/U LH 552, which computes and verifies the checksum over header an data, and outputs the status information to receive packet handler 556, which pairs the status with the buffer address received from memory manager 550 S and queues the infomlation on a received packet list. Information about received packets is then transfelred to receive quelle manager 558, which assembles packel int`omlation into queues per LUWU and SUWU, and which also keeps a queue of LUWUs and SUWUs about which the EUS has not yet been notified. Receive queue manager 558 is polled for information about LUWUs and SUWUs by the 10 EUS via the EUS/UIM link handler (E/U LH) 540, and responds with notificationmessages via UIM/EUS link handler (U/E LH) 5S2. Messages which notify the EUS of the reception of a SUWU also contain the data for the SUWU, thus completing the reception process. In the case of a LUWU, however, the EUS
nllocates its memory for reception, and issues a receive request via E/U LH 540 to l~ receive request l~ dler 560, which formulates a receive worklist and sends it to resource manager 554, which controls the hardware and effects the data transfer over EUS bus 92 (FIG. 4) via a DMA arrangement. Note that the receive request fron1 the EUS need not be for the entire amount of data in the LUWU; indeed, allof the data may not have even arrived at the UIM when the FUS makes its first 20 receive request. When subsequent data for this LUWU arrives, the EUS will again be notified and will have an opportunity to make additional receive requests In this fashion, the reception of the data is pipelined as much as possible in order to reduce latency. Following data transfer, receive request handler 560 inforrnsthe EUS via U/E LH 562, and directs memory manager 550 to de-allocate the 25 memory for that portion of the LUWU that was delivered, thus making that memory available for new incoming data.
In the reverse direction, i.e., from EUS 26 to MINT 11, the operation is controlled as follows: driver 570 of EUS 26 sends a transmit request to trnnsmit request handler 542 via U/E LH 562. In the case of-a SUWU, the ~0 trnnsmit request itself contains the data to be tr~msmitted, and transmit request hnndler 542 sends this data in a transmit worklist to resource manager 554, which computes tlle packet header and writes both header and data into buffer 15 ~FIG~ 4), ~rom which it is transmitted to NIM 2 by UIM/NIM link handler 546 when authorized to do so via the flow control protocol in force on link 14. The 35 packet is received at NIM 2 by UIM/NIM link handler 530 and stored in buffer 94. Arbiter 532 then selects among a plurality of buffers 94 in NIM 2 to 3o~

select the next packet or SUWU to be transmitted under the control of NIM~IINT
link handler 534 on MINT link 3 to MINT 11. In the case of a LUWU, transmit request handler 542 decomposes the request into packets and sends a transmit worklist to resource manager 554, which, for each packet, formulates the header,5 writes the header into buffer 15, controls the hardware to effect the transfer of the packet data over EUS bus 92 via DMA, and directs U/N LH 546 to hansmit the packet when autholized to do so. The transmission process is then as described for the SUWU case. In either case, transmit request handler 5a.2 is notified by resource mana~,er 554 when transmission of the SUWU or LUWU is complete, 10 whereupon driver 570 is notified via U/E LH 562 and may release its transmit buffers if desired.
FIG. 19 also shows details of the internal software structure of EUS 26. Two types of arrangements are shown, in one of which blocks 572,57~, 576,578,580 the user system performs level 3 and higher functions. Shown in 15 FIG. 19 is an implementation based on Network of the Advanced Research Projects Administration of the U.S. Department of Defense (ARPAnet) protocols including an internet protocol 58Q (level 3), transmission control protocol (TCP) and user datagram protocol (UDP) block 578 (TCP being used for connection oriented service and UDP bein~ arranged for connectionless service). At higher 20 levels are the remote procedure call (block 576), the network file server (block 574) and the user programs 572. Alternatively, the services of the MAN
network can be d*ectly invoked by user (block 582) programs which directly interface with driver 570 as indicated by the null block 584 between the user and the driver.
25 8.3.3.3 EUS Interface Functions The main functional parts of the transmit EUS interface are a control interface with the EUS, and a DMA interface to transfer data between the EUS
and the UIM over the system bus. When transmitting into the network, control information is received that describes a LUWU or SUWUs to be transmitted and 30 information about the EUS buffers where the data resides. The control information from the EUS includes destination MAN address, destination group (virtual network), LUWU length, and type fields for type of service and higher level protocol type. The DMA interface moves the user data over from the EUS
buffers into the UIM. The network interface portion is responsible for formatting 35 the LUWUs and SUWUs into packets and transmitting the packets on the link to the network. The control interface could have several variations for flow control, 3;~

multiple outstanding requests, priority, and preemption. The UIM is in control of the amount of data that it takes from the EUS memory and sends into the network.
On the receive side, the EUS polls for information about packets that have been received and the control interface responds with LUWU inforrnation from the packets header and current information about how much of the EUS
transaction has arrived. Over the control interi~ace, the ~US requests to receive data from these messages, and the DMA interface will send the data from memory on the UIM into the EUS memory buffers. The poll and response mechanism in 1~ the interface pro~ocol on the receive side allows a lot of EUS flexibility for receiving data from the network. The EUS can receive either partial or entire transactions that have come from the source EUS. It also provides the flow control mechanism for the EUS on receive. The EUS is in control of what it receives, when it receives it, and in what order.
15 8.3.3.4 SUN Software This section describes how a typical end user system, a SUN-3 workstation, is connectable to MAN. Other end user systems would use different software. The interface to MAN is relatively straightforward and efficient for a number of systems which have been studied.
20 8.3.3.4.1 Existing Network Software The Sun UNIX(~ operating system is derived from the ~.2BSD UNIX
system from the University of California at Berkeley. Like 4.2BSD it contains aspart of the kernel, an implementation of the ARPAnet protocols: internet protocol (IP), transmission control protocol (TCP) for connection-oriented service on top of 25 IP, and user datagram protocol (UDP) for comlectionless service on top of IP.Current Sun systems use IP as an internet sublayer in the top half of the network layer. The bottom half of the network layer is a network specific sublayer. It currently consists of dliver level software that interfaces to a ~specific network hardware connection, namely an ETEIERNET controller, where the link layer 30 MAC protocol is implemented. ETEIFI;~NET is the network currently used to connect Sun workstations. To connect Sun workstations with a MAN network, it is necessary to fit into the framework of this existing networking software. Thesoftware for the MAN network interface in the Sun will be dliver level software.The MAN network is naturally a connectionless or datagram type of 35 network. LUWIJ data with control information forms the EUS transaction crossing the interface into the network. Existing network services can be provided using the MAN network datagram LUWUs as a basis. So-ftware in the Sun will build up both connectionless and connection-oriented transport and application services on top of a MAN datagram network layer. Since the Sun already has a variety of network application software, the MAN driver will provide a basic 5 service with the fle~ibility to multiple~s multiple upper layers. This multiplexing capability will be necessary not just for existing applications but for additional new applications that will use MAN's power more directly.
There needs to be an address translation service function in the EUS
at the driver level in the host software. It would allow for IP addresses to be 10 translated into MAN addresses. The address translation service is s;milar in funGtion to the current Sun address resollltion protocol (ARP), but different inimplementation. If a pnrticular EUS needs to update its address translation tables, it sends a network message with an IP address to a well known address translation server. The corresponding MAN address will be returned. With a set of such 1~ address translation services, MAN can then act as the underlying network for many different, new and existing, network software services in the Sun environment.
8.3.3.4.2 Device Driver On the top side, the driver multiplexes several different queues of 20 LUWUs ~rom the higher protocols and applications for transmission and queues up received LUWUs in several different queues for the higher layers. On the hardware side, the driver sets up DMA transfers to and from user memory buffers.The driver must communicate with the system to map user buffers into memory that can be accessed by the DMA controller over the main system bus.
'~S On transmit, the driver must do address translation on the outgoing LUWUs for those protocol layers that are not using MAN addresses, i.e., the ARPAnet protocols. The MAN destination address and destination group is included in MAN datagram control information that is sent when a LUWU is to be trnnsmitted. Other transmit control information will be LUWU length, fields ~0 indicnting type of service and higher level protocol, along with the data location for DMA~ The UIM uses this control information to form packet headers and to move the LUWU data out of EUS memory.
On receive, the driver will implement a poll/response protocol with the UIM notifying the EUS of incoming data. The poll response will contain 3S control information that gives source address, total LUWIJ length, amount of data that has arrived up to this point, the type fields indicating higher protocol layers, ~ ~ ~ 3 ~ ~ ~

and some agreed on amount of the data from the message. (For small messages, the whole user message could arrive in this poll response.) The driver itself has the flexibility based on the type field to decide how to receive this message and which higher level entity to pass it on up to. It may be, that based on a certain 5 type lSeld, it may just deliver the announcement, and pass the reception decision on up to a higher layer. Which ever approach is used, eventually a control request for the delivery of the data from the UIM to the EUS memory is made, which results in a DMA operation by the UI~I. EUS buffers to receive the data may preallocated for the protocol types where the driver handles the reception in a 10 fi~ed fashion, or the driver may have to get buffer information from a higher layer in the case where it has just passed the announcement on up. This is the type offle~cibility we need in the driver to handle both e7;isting and new applications in the Sun environment.
8.3.3.4.3 Raw MAN Interface Software Later, as applications are written that wish to directly use the capabilities of the MAN network, the address translation function will not be necessary. The MAN datagram control information will be specified directly by special MAN network layer software.
9 MAN Protocols 20 9.1 Overview The MAN protocol provides for the delivery of user data from source UIM across the network to destination UIM. The protocol is connectionless, asymmetric for receive and send, implements error detection without correction, au~d discards layer purity for high performance.
25 9.2 Message Scenario I`he EUS sends datagram transactions called LUWUs into the network. The data that comes from the EUS resides in EUS memory. A control message from the EUS speci~ies to the UIM the data length, the destination address for this LUWU, the destination group and a type ~eld which could contain30 information like the user protocol and the network class of service required.Together, the data and the control information forrn the LUWU. Depending on the type of EUS interface, this data and control can be passed to the UIM in different ways, but it is likely that the data is passed in a DMA transfer.
The UIM will transmit this LUVVU into the network. To reduce 35 potential delay, larger LUWUs are not sent into the network as one contiguousstream. The UIM breaks up the LUWU into fragments called packets that can be ~`3~

up to a certain ma~;in1um size. An UWU smaller than the maximum size is called a SUWU and will be contailled in a single packet. Several EUSs are concentrated at the NIM and packets are transmitted over the link from the UIM to the NIM
~the EUSL). Packets from one UIM can be demand multiplexed on the link from 5 the NIM to the MINT (the XL) with packets from other EUSs~ Delays are reduced becallse no EUS has to wait for the completion of a long LUWU from another EUS sharillg the link to the MINT. The UIM generates a header for every packet that contains information from the original LUWU transaction, so that each packet can pass through the network from source UIM to destination UIM and be 10 recombined into the same LUVVU that was passed into the network by the sourceEUS. The pa~^ket header contains the information for the network layer protocol in the ~IAN network~
Before the NIM sends the packet to the MINT on the XL, it adds a N1~VMINT header to the packet message. The header contains the source port 15 nutnber identifying the physical port on the NIM where a particular EUS/UIM is connected. This header is used by the MINT to verify that the source EUS is located at the port where he is authorized to be. This type of additional check is especially important for a data network that serves one or more virtual networks, to ensure privacy tor such virtual networks. The MINT uses the packet header to 20 determine the route for the packet, as well as other potential services. The MINT
does not change the contents of the packet header. When the ILH in the MINT
pnsses the pncket Ollt througll the switch to be sent out on the XL to the destination NIM, it places a different port number in the NIM/Ml[NT header. Thisport number is the physical port on the NIM where the destination EUS/UIM is ~5 colmected. The destination NIM uses this port number to route the packet on the fly to the proper EUSL.
The various sections of a packet are identified by delimiters according to the link format~ Such delimiters occur between the NIM/MINT header 600 and the ~IAN hender 610, and between the MAN header and the rest of the packet.
3~ The delimiter nt the MAN header/rest of packet border is required to signal the hender check sequence circllit to insert or check the header check~ The NIM
brondcasts a received packet to all ports in the NIM/MINT header field~
When the packet arrives at the destination UIM, the packet header contains the original information from the source UIM necessary to reassemble the 35 source EUS transaction~ There is also enough information to allow a variety of EUS receive interface approaches including pipelining or other variations of EUS

d ~3 transaction si~e, prioritization, and preemption.
9.3 MAN Protocol Description 9~3.1 Link Layer Functions The link functions are described in Section 5. The functions of 5 message beginnillg and end dem~ucation, data transparency, and message check sequences on tlle EUSL and XL links are discussed there.
A check sequence for the whole packet tnessage is performed at the link level, but instead of corrective action being taken there, an indication of the error is passed on Up to the network layer for handling there. A message check 10 sequence error results only in incrementing an error count for administrativepurposes, but the message transmission continues. A separate header check sequence is calculated in hardware in the UIM. A header check sequence error detacted by the MINT control results in the message being thrown away and an error count being incremented for administrative purposes. At the destination l3 UIM n header check sequence error also results in the message being thrown awny. The data check sequence result can be conveyed to the EUS as part of the LUWIJ arrival notification, and the EUS can determine whether of not to receive the message. These violations of layer purity have been made to simplify the processing at the lillk layer to increase speed and overall network perforrnance.
?O C~ther "standard" link layer functions like error corTection and flow control are not perfolrned in the conventional manner. There are no acknowledgemellt messages returned at the link level -for error correction (retransmission requests) or for flow control. Flow control is signaled using special bits in the framing pattern. The complexity of X.25-like protocols at the link level can be tolerated for low speed links where the processing overhead will not reduce performnnce and does increase the reliability of links that have higharror rates. However, it is felt that an acceptable level of error-free throughput will be nGhieved by the low bit error rates in the Iiber optic links in this network ~it Error Rnte less than 10 errors per trillion bits~) Also, because of the large ~n ~mol~nts of buffer memory in the MINT and the UIM necessary to handle data t`r~m tha hi~h-speed links, it was felt that fiow control messages would not be ne~essnry or effective~
9~3~2 Network Laver 9.3.2.1 Functions The message unit that leaves the source UIM and travels all the way to the destination UIM is the packet. The packet is not altered once it leaves the source UIM.
S The in-formation in the UIM to UIM message header will allow the following functions to be performed:
- fragmentation of LUWUs at the source UIM, - recombination of LUWUs at the destination UIM, - routing to the proper NIM at the MINT, - routing to the proper UIM/EUS port at the destination NIM, - M~T transmission of variable length messages (e.g., SUWU, packet, n packets), - destination UIM congestion control and arrival announcement, - detection and handling of message header errors, - addressing of network entities for internal network messages, - EUS authentication for delivery of network services only to authorized users.
9.3.2.2 Format FIG. 20 shows the UIM to MINT Message format. The MAN
header 610 consists of the Destination Address 612, the Source Address 614, the group (virtual network) identifier 616, group name 618, the type of service 620,the Packet Length (the header plus data in bytes) 622, a type of service indicator 623, a protocol identifier 624 for use by end user systems for identifying the contents of EUS to EUS header 630, and the Header Check Sequence 626.
The header is of fixed length, seven 32-bit words or 224 bits long. The MAN
25 header is followed by an EUS to EUS header 630 to process message fragmentation. This header includes a LUWU identifier 632, a LUWU length indicator 634, the packet sequence number 636, the protocol identifier 638 for identifying the contents of the internal EUS protocol which is the header of user data 640, and the number 639 of the initial byte of data of this packet within the 30 total LUWU of information. Finally, user data 640 may be preceded for nppropriate user protocols by the identity of the destination pcrt 642 and source port 644. The fields are 32 bits because that is the most efficient length (integers) for present network control processors. }:~-rror checking is performed on the header in control software; this is the Header Check Sequence. At the link level, error35 checking done over the whole message; this is the Message Check Sequence 534.The NIM/MINT header 600 (explained below) is also shown in the figure for completeness.
The destination address, group identification, type of service, and the source address are placed as the first five fields in the message for efficiency in MINT processing. The destination ancl group identification ~e used for routing, 5 the size for memory management, the type fields for special processing, and the source is used for service authentication.
9.3.2.2.1 Destination Address The Destination Address 612 is a MA~ address that specifies to which EUS the packet is being sent. A MAN address is 32 bits long and is a flat lO address that specifies an EUS com1ected to the network. (In internal network messages, if the high order bit in the MAN address is set, the address specifies an internal network entity like a MINT or NIM, instead of an EUS.) A MAN
address will be pennanently assigned to an EUS and will identify an EUS even if it moves to different physical location on the network. If an EUS moves, it mustSigll ill with a well-known routing authentication server to update the correspolldence between its MAN address and the physical port on which it is located. Of course, the port number is supplied by the NIM so the EU~ cannot cheat about where it is located.
In the MINT the destination address will be used to deterrnine a 20 destination NIM for routing the message. In the destination NIM the destination address will be used to determine a destination UIM for routing the messa~e.
9~3~.2 2 Packet Length The Packet Length 622 is 16 bits long and represents the length in bytes of this message fragment including the fixed length header and the data.
2~ This length is used by the MINT for transmitting the message. It is also used by tl-e destin~tion UIM to determine the amount of data available for delivery to the EUS~
~3~ .3 Type F;elds The type of service field 623 is 16 bits long and contains the type of 3~ service specified in the original EUS request~ The MINT may look at the type of ser~ice nnd handle the message differently. The destination UIM may also look atthe type of service to determine how to deliver the message to the destination EUS, i.e~, deliver even if in error~ The user protocol 624 assists the EUS driver in multiplexing various streams of data from the network.

i 7 ~ 3 9.3.2.2.4 Packe~ Secluence Number This is a Packet Seq-lence Number 636 for this particular LUWU
transmissioll. It helps the receiving UIM recombine the incorning LUWU, so that it can determine if any fragments of the transmission have been lost because of 5 error. The sequence number is incremented for each fragment of the LUWU. The last sequence number is negative to indicate the last packet of a LUWU. (An SUWU would have -1 as the sequence number.) If an infinite length LUWU is being sent, the Packet Sequence Number should wrap around. (See UWU Length, Section ~.3.2.2.7, for an explanation of an infinitc length LUWU.) 10 9.3.2.2.5 Source Address The Source Adclress 614 is 32 bits long and is a MAN address that specifies the EUS that sent the message. (See Destination Address for an e~;planation of MAN address.) The Source Address will be needed in the MINT
for network accounting. Coupled with the Port Number 600 from the NIM/MINT
15 header, it is used by the MINT to authenticate the source EUS for network services. The Source Address will be delivered to the destination EUS so that itknows the network address of the EUS that sent the message.
9.3.2.2.6 UWU ID
The UWU ID 632 is a 32 bit number that is used by the destination 20 UIM to recombine a UWU. Note that the recombination job is made easier because fragments cannot get out of order in the network. The UWU ID, along with the Source and Destination Addresses, identifies packets of the same LUWU, or in other words, fragments of the original datagram transaction. The ID must be unique for the source and destination pair for the time that any fragment is in the 25 network.
9.3.2.2.7 UWU Length The UWU Length 634 is 32 bits long and represents the total length of UWU data in bytes. In the first packet of a LUWU this will allow the destination UIM to do congestion control, and if the LUWU is pipelined into the 30 EUS, it will allow the UIM to begin a LUWU announcement and delivery before the complete LUWU arrives at the UIM.
A Length that is negative indicates an infinite length LUWU, which is like an open channel between two EUSs. Closing down an infinite length LUWU
is done by sending a negative Packet Sequence Number. An infinite length 35 LUWU only makes sense where the UIM controls the DMA into EUS memory.

9.3.2.2.8 Header Check Seq~lence There is a header check sequence 626, calc~llated by the transmitting UI~I for header information so that the MINT and the destination UIM can determine if the header information was received correctly. The MINT or the 5 destination UIM will not attempt delivery of a packet with a header check sequence error.
9.3.2.2.9 User Data The user data 640 is the portion of the user UWU data that is transmitted in this fragment of the transmission. Following the data is the overall 10 message check sequence 646 calculated at the link level.
9.3~3 NIl~IINT Layer 9.3~3~1 Functions This protocol layer consists of a header containing a NIM port number 600~ The port number has a one to one corresponclence to an EUS
15 connection on the NIM and is prepended by the NIM in block 403 (FIG~ 16) so that the user cannot enter false data therein~ This header is positioned at the front of a packet message and is not covered by the overall packet message check sequence~ It is checked by a group of parity bits in the same word to enhance its error reliability~ The incoming message to the MINT contains the source NIM
20 port number to assist in user authentication for network services that might be requested in the type fields~ The outgoing message from the MINT contains the destination NIM port number in place of the source port 600 in order to speed the demultiplexing/routing by the NIM to the proper destination EUS~ If the packet has a plurality of destination ports in one NIM, a list of these ports is placed at 25 the beginning of the packet so that section 600 of the header becomes several words long~
10 LOGIN PROCEDURES_AND VIRTUAL NETWORKS
10~1 General A system such as MAN is naturally most cost effective when it can 30 serve a large number of custon1ers~ Such a large number of customers is likely to include a number of sets of users who require protection from outsiders~ Such users can conveniently be grouped into virtual networks~ In order to provide still further flexibility and protection, individual users may be given access to a number of virtual networks~ For example, all the users of one company may be 35 on one virtual network and the payroll department of that company may be on aseparate virtual network~ The payroll department users should belong to both of - 8~ -these virtual networks since they may need access to general data about the corporation but the users outside the payroll department should not be members of the virtual network of the payroll department virtual network since they should not have access to payroll records.
The login procedure method of source checking and the method of routing are the .~angements which permit the MAN system to support a l~ge number of virtual networks while providing an optimum level of protection against unauthorized data access. Further, the arrangement whereby the NIM
prepends the user port to every packet, gives additional protection against access 10 of a virtual network by an unauthorized user by preventing aliasing.
10.2 Building Up the Authorization Data Base FIG. 15 ilhlstrates the administrative control of the MAN network. A
data bnse is stored in disk 351 accessed via operation, administration, and maintenance (OA&M) system 350 for authorizing users in response to a login 1~ request. For a large MAN network, OA&M system 350 may be a distlibuted multiprocessor arrangement for handling a large volume of login requests. This data base is arranged so that users cannot access restricted virtual networks ofwhich they are not members. The data base is under the control of three types ofsuper users. A first super user who would in general be an employee of the 20 common carrier that is supplying MAN service. This super user, referred to for convenie.nce herein as a level 1 super user, assigns a block of MAN names which would in general consist of a block of numbers to each user group and assigns type 2 nnd type 3 super users to particular ones of these names. The level 1 super user also assigns virtual networks to particular MAN groups. Finally, a level 1 25 super user has the authority to create or destroy a MAN supplied selvice such as electronic "yellow page" service. A type 2 super user assigns valid MAN names from the block assigned to the particulc r user community, and assigns physical port access restrictions where appropliate. In addition, a type 2 super user has the nuthority to restrict access to certain virtual networks by sets of members of his 30 customercommunity.
Type 3 super users who are broadly equal in authority to type 2 super users, have the authority to grant MAN names access to their virtual networks.
Note that such access can only be granted by a type 3 super user if the MAN
name's type 2 super user has allowed this MAN name user the capability of 35 joining this group by an appropriate entry in table 370.

The data base includes table 360 which provides for each user identification 362, the password 361, the group 363 accessible using that password, a list of ports and, for special cases, directory numbers 364 from which that user may transmit and/or receive, and the type of service 365, i.e., receive only, transmit only, or receive and transmit.
The data base also includes user-capability tables 370,375 for relating users (table 370) to groups (table 375) potentially authorizable for each user.
When a user is to be authorized by a super user to access a group, his table is checked to see if that group is in the list of table 370; if not the request to 10 authorize that user for that group will be rejected. Super users have authority to enter data for their group and their groups in tables 370,375. Super users also have the authority for their user to move a group from table 375 into the list of groups 363 of the user/group authorization table 360. Thus, for a user to accessan outside group, super users from both groups would have to authorize this lS access.
10.3 Login Procedure At login time, a user who has previously been appropriately authorized according to the arrangements described above, sends an initial loginrequest message ~o the MAN network. This message is destined not for any other 20 user, but for the MAN network itself. Effectively, this message is a header only message which is analyzed by the MINT central control. The password, type of login service being requested, MAN group, MAN name and port nurnber are all in the MAN header of a login request, replacing other fields. This is done because only the header is passed by the XLH to the MINT central control, for further 25 processing by the OA&M central control. The login data which includes the MAN name, the requested MAN group name (virtual network name), and the password are compared against the login authorization data base 351 to check whether the particular user is authorized to access that virtual network frorn the physical port to which that user is connected (the physical port was prepended by 30 the NIM prior to reception of the login packet by the MINT). If the user is in fact properly authorized, then the tables in source checker 307 and in router 309 (F~G. 14) a~e updated. Only the source checker table of the checker that processes the login user's port is updated from a login for terminal operations. If a login request is for receive functions, then the routing tables of all MINTs must 35 be updated to allow that source to receive data from any authori~ed connectable user of the same group who may be connected to other MINTs to respond to ~L ~L J 1-t requests. The source checker table 308 includes a list of authorized name/group pairs for each port connected to the NIM that sends the data stream to the XLH
for that source checker. The router tables 310, all include entries for all users authorized to receive UWUs. Each entry includes a name/group pair, and the 5 corresponding NIM and port number. The entries in the source checker list are grouped by group identification numbers. The group identification n~lmber 616 ispart of the header of subsequent packets from the logged in user, and is deri-ved by the OA8cM system 350 at login time and sent back by the OA&M system via the MAN switch 10 to the login user. The OA&M system 350 uses the MINT
10 central control's 20 access 19 to the MINT memory 18 to enter the login ackllowledge to the login user. On subsequent packets, as they are received in the ~INT, the source checker checks the port number, MAN name and ~IAN group agaillst the autllorization table in the source checker with the result that the packet is allowed to proceed or not. The router then checks to see if the destination is an 15 allowable destination for that input by checking the virtual network group name auld the destination name. As a result, once a user is logged in, the user can reach any destination that is in the routing tables, i.e., that has previously logged in for access in the read only mode or the read/write mode, and that has the same virtual network group name as requested in the login; in contrast unauthorized users are20 blocked in every packet.
While in the present embodiment, the checking is done for each pncket, it could also be done for each user work unit (LUWU or SUWU), with a recorded indication that all subsequent packets of a LUWU whose original packet was rejected are also to be rejected, or by rejecting all LUWUs whose initial 25 packet is missing at the user system.
Those super user logins which are associated with making changes in th~ login dnta base are checked in the same way as conventional logins except that it is recognized in OA&~I system 350 as a login request for a user who has nuthority for changing the data base stored on disk 351.
3û Super users types 2 and 3 get access to the OA&M system 350 from acomputer connected to a user port of MAN. OA&M system 350 derives statistics on billing, usage, authorizations and perforrnance which the super users can access from their computers.
- The MAN network can also serve special types of users such as 35 transmit only users and receive only users. An example of a transmit only user is a broadcast stock quotation system or a video transmitter. Outputs of transmit only users are only checked in source checker tables. Receive only units such ASprinters or monitoring devices are authorized by entries in the routing tables.
FIG~ 22 shows an arrangen1ellt f`or using the MAN architecture to switch voice as well as data. In order to simplify the application of this architecture to such serv;ces, an existing switch in this case, the 5ESS~ switchmallufactured by AT&T Network Systems, is used~ The advantage of using an e~isting switch is that it avoids the necessity for developing a program to control a local switch, a very large development effort. By using an existing switch as 10 the interface betweell the MAN and voice users, tllis effort can be almost con~pletely eliminated. Shown on FIG. 22 is a conventional customer telephone connected to a switching module 1207 of SESS switch 12Q0. This customer telephone could also be a combined integrated services digital network (ISDN) voice nnd data c~lstomer station which can also be connected to a 5ESS switch.
I~i Other customer stations 1202 are connected through a subscriber loop carriersystem 1203 whicll is connected to a switching module 1207. The switching modules 1207 are connected to a time multiplex switch 1209 which sets up comlections between switching modules. Two of these switching modules are shown connected to an interface 1210 complising Common Channel Signaling 7 20 (CCS 7) signaling channels 1211, pulse code modulation (PCM) channels 1213, an special signaling channels 1215. These are connected to a packet assembler and disassembler 1217 for interfacing with an MAN NIM 2. The function of the PAD is to interface between the PCM signals which are generated in the switch and the packet signals which are switched in the MAN network. The function of the speci~l signa]ing channel 1215 is to inform PAD 1217 of the source and destillntion associated with each PCM channel. The CCS 7 channels transmit pnckets which require further processing by PAD 1217 to get them into the form necessary for switching by the MAN network. To m~lke the system less vulnerable agninst the failure of equipment or transmission facilities, the switch is ~0 shown ns being comlected to two different NIMs of the MAN network. A digital PB~ 121g also interfaces with packet assembler disassembler 1217 directly. In a subsequent upgrade of the PAD, it would be possible to interface directly with SLC 1203 or with telephones such as integrated services digital network (ISDN) telephones that generate a digital voice bit stream directly.

The NIMs are connected to a MAN hub 1230. The NIMs are connected to MINTs 11 of that hub. The MINTs 11 are interconnected by MAN
switch 22.
For thi.s type of confi,,uration, it is desirable to switch substantial 5 quantities of data as well as voice in order to utilize the capabilities of the MAN
hub most effectively. Voice packets, in particulal, have very short delay requirements in order to minimize the total delay encountered in transmitting speech from a sollrce to a destination and in order to ensure that there is no substantial interpacket gap which would result in the loss of a portion of the 10 speech signal.
The basic design parameters for MAN have been selected to optimize data switching, and have been adapted in a most straightforward manner as shown in FIG~ 22. If a large amount of voice packet switching is required, one or moreof the following additional steps can be talcen:
1. A form of coding such as adaptive differential PCM (ADPCM) which o~fers excellent performance at 32 Kbit/second could be used instead of 64 Kbit PCM. Excellent coding schemes are also available which require fewer than 32 Kbit/sec. for good performance.
2. Packets need only be sent when a customer is actually speaking. This reduces the number of packets that must be sent by at least 2:1.
3. The size of the buffer for buffering voice samples could be increased above the storage for 256 voice samples (a two packet buffer) per channel.
However, longer voice packets introduce more delay which may or may not be tolerable depending on the characteristics of the rest of the voice network.
4. Voice traffic might be concentrated in specialist MINTs to reduce the number of switch setup operations for voice packets. Such an arrangement may enlarge the number of customers affected by a failure of a NIM or MINT and might require arrangements for providing alternate paths to another NIM and/or MINT.
5. Alternate hllb configurations can be used.
The alternate hub configuration of FIG. 24 is an example of a step 5 solution. A basic problem of switching voice packets is that in order to minimize ~elay in transmitting voice, the voice packets must represent only a short segment 35 of speech, as low as 20 milliseconds according to some estimates. This corresponds to as many as 50 packets per second for each direction of speech. If a substantial fractioll of the input to a MINT represented such voice packets, the circuit switch setup time might be too great to handle such traffic. If only voice traffic were being switched, a packet switch which would not require circuit setup operations might be needed for high trafISc situations.
S One embodiment of such a packet switch 1300 comprises a group of ~IINTs 1313 intercollnected like a conventional array of space division switcheswherein each MINT 1313 is connected to four others, and enough stages are added to reach all output MINTs 1312 that carry heavy voice traffic. For added protection against equipment failure, the MINTs 1313 of the packet switch 1300 10 could be interconnected through MANS 10 in order to route traffic around a defective MINT 1313 and to use a spare MINT 1313 instead.
The output bit stream of NIM 2 is connected to one of the inputs ~L) of an input MINT 1311. The packet data traffic leaving input MINT 1311 can continue to be switched through MANS 10. In this embodiment, the data IS paclcet output of MANS 10 is merged with the voice packet output of data switch 1300 in an output MINT 1312 which receives the outputs of MANS 10 and data switch 1300 on the XL 16 (input) side and whose IL 17 output is the input bit stream of ND~,I 2, produced by a PASC circuit 290 (FIG. 13). Input MINT 1311 does not contain the PASC circuit 290 (FIG. 13) for generating the 20 output bit stream to NIM 2. For output MINT 1312 the inputs to the XLs from MANS 10 pass through a phase alignment circuit 292 (FIG. 13) such as that shown in FIG. 23, since such inputs come from many different sources through circuit paths that insert different delay.
This arrangement can also be used for switching high priority data 25 packels through the packet switch 1300 while retaining the circuit switch 10 for switching low priority data packets. With this arrnngement, it is not necessary to connect the packet switch 1300 to output MINTs 1312 carrying no voice haffic; inthnt case, high priority pnckets to MINTs carrying no voice traffic would have to be routed througll circuit switch MANS 10.

FIG~ 21 illustrates one arrangement for controlling access by ~IINTs 11 to the MAN switch contlol 22. l~ach MINT has an associated access controller 1120~ A data ring 1102,104,1106 distributes data indicating the availability of output links to each logic and count circuit 1110 of each access35 controller. Each access controller 1120 maintains a list 1110 of output links such as 1112 to which it wants to send data, each link having an associated priority ~3~7~

indicator 1114. A MINT can seize an output link of that list by marking the linkunavailable in ring 1102 and transmitting an order to the MAN switch control 22 to set up a path from an ILH of that MINT to the requested output link. When the full data block to be transmitted to that output link has been so transmitted, 5 the MINT m~ks the output link available in the data transmitted by data ring 1102 which thereby makes that output link available for access by other MINTs.
A problem with using only availability data is that during periods of congestion the time before a particular MINT may get access to an output link can 10 be excessive. In order to even the accessibility of any output link to any MINT, the followin~, arrangement is used. Associated with each link availability indication, called a ready bit transmitted in ring 1102, is a window bit transmitted in ring 1104~ The ready bit is controlled by any MINT that seizes or releases anoutput link. The window bit is controlled by the access controller 1120 of only a 1~ single MINT called, for the purposes of this description, the controlling MINT. In this particular embodiment, the controlling MINT for a given output link is the MINT to which the corresponding output link is routed.
The effect of an open window (window bit = 1) is to let the first access controller on the ring that wants to seize an output link and recognizes its 20 availability as the ready bit passes the controller, seize such a link, and to let any controller which tries to seize an unavailable link set the priority indicator 1114 for that unavailable link. The effect of a closed window (window bit = 0) is to permit only controllers which have a priority indicator set for a`corresponding available link to seize that available link. The window is closed by the access 25 controller 1120 of the controlling MINT whenever the logic and count circuit 1100 of that controller detects that the output link is not available (ready bit = 0) and is opened whenever that controller detects that that output link isavailable (ready bit = 1).
The operation of an access controller seizing a link is as follows. If 30 the link is unavailable (ready bit = 0) and the window bit is one, the accesscontroller sets the priority indicator 1114 for that output link. If the link isunavailable and the window bit is zero, the controller does nothing. If the link is available and the window bit is one, the controller seizes the link and marks the ready bit zero to ensure that no other controller seizes the same link. If the link is 35 available and the window bit is zero, then only a controller whose pIiority indicator 1114 is set -for that link can seize that link and will do so by marking the P~ ~ 3 ready bit zero. The action of the access controller of the controlling MINT on the window bit is simpler: that controller simply copies the value of the ready bit into the window bit.
In addition to the ready and window bits, a frame bit is circulated in 5 ring 1106 to define the beginning of a frame of resource availability data, hence, to define the count for identifying the link associated with each clear and window bit. Data on the three rings 1102, 1104 and 1106 circulates serially and in synchronism through the logic and count circuit 1100 of each MINT.
The result of this type of operation is that those access controllers 10 which are trying to sei~e an output link and which are located between the unit that first successfully seized that output link and the access controller that controls the window bit have priority and will be served in turn before any other controllers that subsequently may make a request to seize the specific output link.
As a result, an approximately fair distribution of access by all MINTs to all output 15 links is achieved.
If this alternative approach to controlling MINT 11 access control to the MANSC 22 is used, priority is controlled from the MINT. Each ~INT
maintains a priority and a regular queue for queuing requests, and makes requests for MANSC services first from the MINT priority queue.

It is to be understood that the above descliption is only of one preferred embodiment of the invention. Numerous other arrangements may be devised by one skilled in the art without departing from the spirit and scope of the invention. The invention is thus limited only as defined in the accompanying 25 claims.

~ 3 ~ 1~ r!~3 APPENDIX A
ACRONYMS AND ABBREVIATIONS

lSC First Stage Controller 2SC Second Stage Controller ACK Acknowledge ARP Address Resolution Protocol ARQ Automatic Repeat Request BNAK Busy Negative Acknowledge CC Central Control CNAK Control Negative Acknowledge CNet Control Network CRC Cyclic Redundancy Check or Code DNet Data Network DRAM Dynamic Random Access Memory 1~ DVMA Direct Virtual Memory Access EUS End User System EUSL End User Link (Connects NIM and UIM) FEP Front End Processor FIFO First In First Out FNAK Fabric Blocking Negative Acknowledge IL Internal Link (Connects MINT and MANS) ILH Internal Link Handler IP Internet Protocol LAN Local Area Network LUWU Long User Work Unit MAN Exemplary Metropolitan Area Network MANS MAN Switch MANSC MAN/Switch Controller MINT Memory and Interface Module MMU Memory Management Unit NAK Negative Acknowledge NIM Network Interface Module OA&M Operation, Administration and Maintenance PASC Phase Alignment and Scramble Circuit SCC Switch Control Complex SUWU Short User Work Unit TCP Transmission Control Protocol TSA Time Slot Assigner UDP User Datagram Protocol UIM User Interface Module UWU User Work Unit VLSI Very Large Scale Integration VME(~) bus An IEEE Standard Bus WAN Wide Area Network XL External Link (Connects NIM to MINT~
XLH External Link Handler 1~ XPC Crosspoint Controller

Claims (6)

Claims:
1. A protocol for a data network, comprising:
a data packet header comprising an identification of a source and a destination;
wherein said data network comprises means for checking for each data entity that transmission from said source to said destination is authorized prior to transmitting said each data entity to said destination if network transmission capacity is available.
2. A network protocol for a data network, said protocol specified by a header for each data packet, said header comprising:
an identification of a transmitting network port supplied by said network;
an identification of the name of a source and name of a destination supplied by a source user system;
said network comprising means for checking for each data entity that said source is authorized to transmit to said destination from said port prior to transmitting said each data entity to said destination if network transmission capacity is available.
3. A protocol for a data network, comprising a network protocol specified by a network header, comprising:
an identification of a source port;
an identification of a source user, an identification of a destination user system;
an identification of a user group;
an identification of a type of service to be provided; and a header check for detecting errors in said network header, wherein said data network comprises means for identifying said source port and for inserting an identification of said source port into said network header as said identification of a source port;
wherein said data network comprises means for checking for each data entity whether a combination of said source user, said user group and said source port is authorized to transmit packets over said data network prior to transmitting said each data entity to said destination;

wherein said data network comprises means for generating a destination port identity from a combination of said destination user system identification and said group for transmitting said data packet to said destination port.
4. The protocol of claim 3 further comprising a user protocol specified by an end user header, comprising:
an identification of a user work unit;
an indication of the length of said user work unit;
an indication of a packet sequence number within said user work unit;
an identification of protocol to be used by said destination user, and a number of a first byte of said packet within said user work unit;
wherein said destination user system comprises means for identifying said packet with reference to other packets of a user work unit, using said user work unit identification; means for recognizing out of sequence packets using said packet sequence number; said for storing data of said packet relative to a stored address for storing said user work unit using said number of said first byte; and means for recognizing completion of reception of a user work unit using said length indication.
5. A method of transmitting data packets in a data network comprising the steps of:
inserting in a header of each data packet an identification of a source and a destination; and checking in said data network for each data entity whether said source is authorized to transmit packets to said destination prior to transmitting said each data entity to said destination if network transmission capacity is available.
6. The protocol of claim 2 wherein said header further comprises a user group identification and wherein said network further comprises:
means for translating from said name of said destination to a destination port identification for transmission of said each packet to said destination; and wherein said means for checking further checks that said source and said destination are members of a user group identified by said user group identification.
CA000585997A 1988-03-31 1988-12-15 User to network interface protocol for packet communications networks Expired - Lifetime CA1310733C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/175,693 1988-03-31
US07/175,693 US4922486A (en) 1988-03-31 1988-03-31 User to network interface protocol for packet communications networks

Publications (1)

Publication Number Publication Date
CA1310733C true CA1310733C (en) 1992-11-24

Family

ID=22641252

Family Applications (1)

Application Number Title Priority Date Filing Date
CA000585997A Expired - Lifetime CA1310733C (en) 1988-03-31 1988-12-15 User to network interface protocol for packet communications networks

Country Status (2)

Country Link
US (1) US4922486A (en)
CA (1) CA1310733C (en)

Families Citing this family (268)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179669A (en) * 1988-08-22 1993-01-12 At&T Bell Laboratories Multiprocessor interconnection and access arbitration arrangement
US5124909A (en) * 1988-10-31 1992-06-23 Hewlett-Packard Company Software program for providing cooperative processing between personal computers and a host computer
JPH02161854A (en) * 1988-12-14 1990-06-21 Hitachi Ltd Selection system for transmission control procedure
US5046000A (en) * 1989-01-27 1991-09-03 International Business Machines Corporation Single-FIFO high speed combining switch
JPH0813057B2 (en) * 1989-02-03 1996-02-07 日本電気株式会社 Mixed transfer method of HDLC variable length packet and non-HDLC fixed length packet
ATE180126T1 (en) * 1989-03-31 1999-05-15 J Noel Chiappa VERY FAST DATA PACKET SWITCHING AND PROCEDURE
US5187780A (en) * 1989-04-07 1993-02-16 Digital Equipment Corporation Dual-path computer interconnect system with zone manager for packet memory
US5477541A (en) * 1989-09-29 1995-12-19 White; Richard E. Addressing technique for storing and referencing packet data
US5495482A (en) * 1989-09-29 1996-02-27 Motorola Inc. Packet transmission system and method utilizing both a data bus and dedicated control lines
US5321816A (en) * 1989-10-10 1994-06-14 Unisys Corporation Local-remote apparatus with specialized image storage modules
JPH03158040A (en) * 1989-11-16 1991-07-08 Fujitsu Ltd Data transformer
US5280474A (en) * 1990-01-05 1994-01-18 Maspar Computer Corporation Scalable processor to processor and processor-to-I/O interconnection network and method for parallel processing arrays
DE69108900D1 (en) * 1990-01-30 1995-05-18 Johnson Service Co NETWORKED RESOURCE MANAGEMENT SYSTEM.
JPH04219859A (en) * 1990-03-12 1992-08-10 Hewlett Packard Co <Hp> Harware distributor which distributes series-instruction-stream data to parallel processors
US5191578A (en) * 1990-06-14 1993-03-02 Bell Communications Research, Inc. Packet parallel interconnection network
US5023780A (en) * 1991-01-03 1991-06-11 Northern Telecom Limited Method of operating a packet switching network
WO1992013395A1 (en) * 1991-01-28 1992-08-06 Motorola, Inc. Receiver controller method and apparatus
CA2079340A1 (en) * 1991-02-01 1992-08-02 Pavel Cerna Packet switching communications system
FI94581C (en) * 1991-02-12 1995-09-25 Nokia Telecommunications Oy System for automatically communicating contact information in a mobile telephone network or the like
DE4129205A1 (en) * 1991-03-28 1992-10-01 Bosch Gmbh Robert METHOD FOR BUILDING MESSAGES FOR DATA EXCHANGE AND / OR FOR SYNCHRONIZING PROCESSES IN DATA PROCESSING SYSTEMS
US5251203A (en) * 1991-12-23 1993-10-05 Xerox Corporation Hub privacy filter for active star CSMA/CD network
AU3416293A (en) * 1991-12-23 1993-07-28 Network Express System for internetworking data terminal equipment through a switched digital network
US5471471A (en) * 1992-01-03 1995-11-28 Motorola, Inc. Signal communication method and apparatus
US5408419A (en) * 1992-04-14 1995-04-18 Telefonaktiebolaget L M Ericsson Cellular radiotelephone system signalling protocol
EP0570338B1 (en) * 1992-05-15 1995-08-16 Gut, Max B., Dipl.-Ing. ETH Method and apparatus for monitoring access and access protection in communication networks
US5481735A (en) * 1992-12-28 1996-01-02 Apple Computer, Inc. Method for modifying packets that meet a particular criteria as the packets pass between two layers in a network
JPH0763161B2 (en) * 1993-01-05 1995-07-05 日本電気株式会社 Multimedia packet communication system
US5309426A (en) * 1993-01-26 1994-05-03 International Business Machines Corporation High performance cascadable simplex switch
US5406557A (en) * 1993-02-01 1995-04-11 National Semiconductor Corporation Interenterprise electronic mail hub
US5408469A (en) * 1993-07-22 1995-04-18 Synoptics Communications, Inc. Routing device utilizing an ATM switch as a multi-channel backplane in a communication network
US5881136A (en) * 1993-09-10 1999-03-09 Octel Communication Corporation Fax overflow system
US5657461A (en) * 1993-10-04 1997-08-12 Xerox Corporation User interface for defining and automatically transmitting data according to preferred communication channels
MY112412A (en) * 1993-10-14 2001-06-30 Nuchem Australia Pty Ltd Multimedia enabled network.
JPH07143140A (en) * 1993-11-15 1995-06-02 Fujitsu Ltd Universal link configurator
US5450425A (en) * 1993-11-19 1995-09-12 Multi-Tech Systems, Inc. Protocol for communication of a data packet
US5528762A (en) * 1993-12-27 1996-06-18 Intel Corporation Self-timed data streaming receiver and transmitter having reduced latency and increased data streaming capability
US5706429A (en) * 1994-03-21 1998-01-06 International Business Machines Corporation Transaction processing system and method
US5544330A (en) * 1994-07-13 1996-08-06 Emc Corporation Fault tolerant interconnect topology using multiple rings
US5793978A (en) * 1994-12-29 1998-08-11 Cisco Technology, Inc. System for routing packets by separating packets in to broadcast packets and non-broadcast packets and allocating a selected communication bandwidth to the broadcast packets
US5867666A (en) * 1994-12-29 1999-02-02 Cisco Systems, Inc. Virtual interfaces with dynamic binding
US5978577A (en) * 1995-03-17 1999-11-02 Csg Systems, Inc. Method and apparatus for transaction processing in a distributed database system
US5636371A (en) * 1995-06-07 1997-06-03 Bull Hn Information Systems Inc. Virtual network mechanism to access well known port application programs running on a single host system
US5812775A (en) * 1995-07-12 1998-09-22 3Com Corporation Method and apparatus for internetworking buffer management
US5748633A (en) * 1995-07-12 1998-05-05 3Com Corporation Method and apparatus for the concurrent reception and transmission of packets in a communications internetworking device
US5825774A (en) * 1995-07-12 1998-10-20 3Com Corporation Packet characterization using code vectors
US5651002A (en) * 1995-07-12 1997-07-22 3Com Corporation Internetworking device with enhanced packet header translation and memory
US5796944A (en) * 1995-07-12 1998-08-18 3Com Corporation Apparatus and method for processing data frames in an internetworking device
US6097718A (en) 1996-01-02 2000-08-01 Cisco Technology, Inc. Snapshot routing with route aging
US6147996A (en) * 1995-08-04 2000-11-14 Cisco Technology, Inc. Pipelined multiple issue packet switch
US6917966B1 (en) 1995-09-29 2005-07-12 Cisco Technology, Inc. Enhanced network services using a subnetwork of communicating processors
US6182224B1 (en) 1995-09-29 2001-01-30 Cisco Systems, Inc. Enhanced network services using a subnetwork of communicating processors
US7246148B1 (en) 1995-09-29 2007-07-17 Cisco Technology, Inc. Enhanced network services using a subnetwork of communicating processors
US5684800A (en) * 1995-11-15 1997-11-04 Cabletron Systems, Inc. Method for establishing restricted broadcast groups in a switched network
GB9603582D0 (en) 1996-02-20 1996-04-17 Hewlett Packard Co Method of accessing service resource items that are for use in a telecommunications system
US5633810A (en) * 1995-12-14 1997-05-27 Sun Microsystems, Inc. Method and apparatus for distributing network bandwidth on a media server
US7336649B1 (en) * 1995-12-20 2008-02-26 Verizon Business Global Llc Hybrid packet-switched and circuit-switched telephony system
US6041109A (en) * 1995-12-29 2000-03-21 Mci Communications Corporation Telecommunications system having separate switch intelligence and switch fabric
US6091725A (en) 1995-12-29 2000-07-18 Cisco Systems, Inc. Method for traffic management, traffic prioritization, access control, and packet forwarding in a datagram computer network
US6035105A (en) * 1996-01-02 2000-03-07 Cisco Technology, Inc. Multiple VLAN architecture system
US6002669A (en) * 1996-03-26 1999-12-14 White; Darryl C. Efficient, multi-purpose network data communications protocol
US6069890A (en) * 1996-06-26 2000-05-30 Bell Atlantic Network Services, Inc. Internet telephone service
US6154445A (en) * 1996-04-18 2000-11-28 Bell Atlantic Network Services, Inc. Telephony communication via varied redundant networks
US5898780A (en) * 1996-05-21 1999-04-27 Gric Communications, Inc. Method and apparatus for authorizing remote internet access
US6308148B1 (en) 1996-05-28 2001-10-23 Cisco Technology, Inc. Network flow data export
US6243667B1 (en) 1996-05-28 2001-06-05 Cisco Systems, Inc. Network flow switching and flow data export
US6400681B1 (en) 1996-06-20 2002-06-04 Cisco Technology, Inc. Method and system for minimizing the connection set up time in high speed packet switching networks
US6212182B1 (en) 1996-06-27 2001-04-03 Cisco Technology, Inc. Combined unicast and multicast scheduling
US5802042A (en) * 1996-06-28 1998-09-01 Cisco Systems, Inc. Autosensing LMI protocols in frame relay networks
US6434120B1 (en) * 1998-08-25 2002-08-13 Cisco Technology, Inc. Autosensing LMI protocols in frame relay networks
US5839088A (en) 1996-08-22 1998-11-17 Go2 Software, Inc. Geographic location referencing system and method
US5909550A (en) * 1996-10-16 1999-06-01 Cisco Technology, Inc. Correlation technique for use in managing application-specific and protocol-specific resources of heterogeneous integrated computer network
US6078582A (en) 1996-12-18 2000-06-20 Bell Atlantic Network Services, Inc. Internet long distance telephone service
US6304546B1 (en) 1996-12-19 2001-10-16 Cisco Technology, Inc. End-to-end bidirectional keep-alive using virtual circuits
US6137869A (en) 1997-09-16 2000-10-24 Bell Atlantic Network Services, Inc. Network session management
US6574216B1 (en) 1997-03-11 2003-06-03 Verizon Services Corp. Packet data network voice call quality monitoring
FR2761843B1 (en) * 1997-03-12 2002-05-03 Mannesmann Ag METHOD FOR OPERATING PRIVATE VIRTUAL NETWORKS IN A COMMON NETWORK FOR SWITCHING DATA PACKETS AND DEVICE FOR CARRYING OUT SAID METHOD
US6870827B1 (en) 1997-03-19 2005-03-22 Verizon Services Corp. Voice call alternative routing through PSTN and internet networks
US6292479B1 (en) 1997-03-19 2001-09-18 Bell Atlantic Network Services, Inc. Transport of caller identification information through diverse communication networks
US6934249B1 (en) 1997-04-01 2005-08-23 Cisco Technology, Inc. Method and system for minimizing the connection set up time in high speed packet switching networks
US5968126A (en) * 1997-04-02 1999-10-19 Switchsoft Systems, Inc. User-based binding of network stations to broadcast domains
US5991302A (en) * 1997-04-10 1999-11-23 Cisco Technology, Inc. Technique for maintaining prioritization of data transferred among heterogeneous nodes of a computer network
US6791979B1 (en) 1997-04-10 2004-09-14 Cisco Technology, Inc. Mechanism for conveying data prioritization information among heterogeneous nodes of a computer network
US6115751A (en) * 1997-04-10 2000-09-05 Cisco Technology, Inc. Technique for capturing information needed to implement transmission priority routing among heterogeneous nodes of a computer network
US6122272A (en) * 1997-05-23 2000-09-19 Cisco Technology, Inc. Call size feedback on PNNI operation
US6356530B1 (en) 1997-05-23 2002-03-12 Cisco Technology, Inc. Next hop selection in ATM networks
US6070243A (en) 1997-06-13 2000-05-30 Xylan Corporation Deterministic user authentication service for communication network
US6862284B1 (en) 1997-06-17 2005-03-01 Cisco Technology, Inc. Format for automatic generation of unique ATM addresses used for PNNI
US5959989A (en) * 1997-06-25 1999-09-28 Cisco Technology, Inc. System for efficient multicast distribution in a virtual local area network environment
US6122276A (en) * 1997-06-30 2000-09-19 Cisco Technology, Inc. Communications gateway mapping internet address to logical-unit name
ES2208842T3 (en) 1997-07-02 2004-06-16 Alcatel Time multiplexing method and RELATED PROVISIONS FOR USE IN A CENTRAL STATION AND IN TERMINALS OF A COMMUNICATION NETWORK.
US6078590A (en) * 1997-07-14 2000-06-20 Cisco Technology, Inc. Hierarchical routing knowledge for multicast packet routing
US20080207178A1 (en) * 1997-07-30 2008-08-28 Steven Tischer Apparatus and method for restricting access to data
US20080207202A1 (en) * 1997-07-30 2008-08-28 Zellner Samuel N Apparatus and method for providing a user interface for facilitating communications between devices
US20080220775A1 (en) * 1997-07-30 2008-09-11 Steven Tischer Apparatus, method, and computer-readable medium for securely providing communications between devices and networks
US20080220776A1 (en) * 1997-07-30 2008-09-11 Steven Tischer Interface devices for facilitating communications between devices and communications networks
US20080195641A1 (en) * 1997-07-30 2008-08-14 Steven Tischer Apparatus and method for aggregating and accessing data according to user information
US20080194225A1 (en) * 1997-07-30 2008-08-14 Steven Tischer Apparatus and method for providing emergency and alarm communications
US20080207197A1 (en) 1997-07-30 2008-08-28 Steven Tischer Apparatus, method, and computer-readable medium for interfacing devices with communications networks
US20080207179A1 (en) * 1997-07-30 2008-08-28 Steven Tischer Apparatus and method for testing communication capabilities of networks and devices
US20080192768A1 (en) * 1997-07-30 2008-08-14 Steven Tischer Apparatus, method, and computer-readable medium for interfacing communication devices
US20080192769A1 (en) * 1997-07-30 2008-08-14 Steven Tischer Apparatus and method for prioritizing communications between devices
US7149514B1 (en) * 1997-07-30 2006-12-12 Bellsouth Intellectual Property Corp. Cellular docking station
US20080194251A1 (en) * 1997-07-30 2008-08-14 Steven Tischer Apparatus and method for providing communications and connection-oriented services to devices
US6101320A (en) * 1997-08-01 2000-08-08 Aurora Communications Exchange Ltd. Electronic mail communication system and method
US6330599B1 (en) 1997-08-05 2001-12-11 Cisco Technology, Inc. Virtual interfaces with dynamic binding
US6157641A (en) * 1997-08-22 2000-12-05 Cisco Technology, Inc. Multiprotocol packet recognition and switching
US6512766B2 (en) 1997-08-22 2003-01-28 Cisco Systems, Inc. Enhanced internet packet routing lookup
US6212183B1 (en) 1997-08-22 2001-04-03 Cisco Technology, Inc. Multiple parallel packet routing lookup
US6049833A (en) * 1997-08-29 2000-04-11 Cisco Technology, Inc. Mapping SNA session flow control to TCP flow control
US6128662A (en) * 1997-08-29 2000-10-03 Cisco Technology, Inc. Display-model mapping for TN3270 client
US6263370B1 (en) * 1997-09-04 2001-07-17 Mci Communications Corporation TCP/IP-based client interface to network information distribution system servers
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
US6343072B1 (en) 1997-10-01 2002-01-29 Cisco Technology, Inc. Single-chip architecture for shared-memory router
US6418461B1 (en) * 1997-10-06 2002-07-09 Mci Communications Corporation Intelligent call switching node in an intelligent distributed network architecture
US6845102B1 (en) 1997-10-09 2005-01-18 Cisco Technology, Inc. Method and system for network access over a low bandwidth link
US6246669B1 (en) 1997-11-28 2001-06-12 Cisco Technology, Inc. Method and system for optimizing connection set-up operations in a high speed digital network
US7570583B2 (en) * 1997-12-05 2009-08-04 Cisco Technology, Inc. Extending SONET/SDH automatic protection switching
US6065062A (en) * 1997-12-10 2000-05-16 Cisco Systems, Inc. Backup peer pool for a routed computer network
US6252855B1 (en) 1997-12-22 2001-06-26 Cisco Technology, Inc. Method and apparatus for identifying a maximum frame size to maintain delay at or below an acceptable level
US6188694B1 (en) 1997-12-23 2001-02-13 Cisco Technology, Inc. Shared spanning tree protocol
US6976088B1 (en) 1997-12-24 2005-12-13 Cisco Technology, Inc. Method and apparatus for rapidly reconfiguring bridged networks using a spanning tree algorithm
US6032194A (en) 1997-12-24 2000-02-29 Cisco Technology, Inc. Method and apparatus for rapidly reconfiguring computer networks
US6424649B1 (en) 1997-12-31 2002-07-23 Cisco Technology, Inc. Synchronous pipelined switch using serial transmission
US6111877A (en) 1997-12-31 2000-08-29 Cisco Technology, Inc. Load sharing across flows
US6594230B1 (en) 1998-02-23 2003-07-15 Lucent Technologies Inc. System and method for providing advanced calling features to a packet network-based communication device and packet network employing the same
US6853638B2 (en) * 1998-04-01 2005-02-08 Cisco Technology, Inc. Route/service processor scalability via flow-based distribution of traffic
US6167052A (en) * 1998-04-27 2000-12-26 Vpnx.Com, Inc. Establishing connectivity in networks
US6154743A (en) * 1998-06-16 2000-11-28 Cisco Technology, Inc. Technique for accessing heterogeneous directory services in an APPN environment
US6513108B1 (en) 1998-06-29 2003-01-28 Cisco Technology, Inc. Programmable processing engine for efficiently processing transient data
US6101599A (en) * 1998-06-29 2000-08-08 Cisco Technology, Inc. System for context switching between processing elements in a pipeline of processing elements
US6370121B1 (en) 1998-06-29 2002-04-09 Cisco Technology, Inc. Method and system for shortcut trunking of LAN bridges
US6195739B1 (en) 1998-06-29 2001-02-27 Cisco Technology, Inc. Method and apparatus for passing data among processor complex stages of a pipelined processing engine
US6920112B1 (en) 1998-06-29 2005-07-19 Cisco Technology, Inc. Sampling packets for network monitoring
US6836838B1 (en) 1998-06-29 2004-12-28 Cisco Technology, Inc. Architecture for a processor complex of an arrayed pipelined processing engine
US6119215A (en) * 1998-06-29 2000-09-12 Cisco Technology, Inc. Synchronization and control system for an arrayed processing engine
US6377577B1 (en) 1998-06-30 2002-04-23 Cisco Technology, Inc. Access control list processing in hardware
US6182147B1 (en) 1998-07-31 2001-01-30 Cisco Technology, Inc. Multicast group routing using unidirectional links
US6308219B1 (en) 1998-07-31 2001-10-23 Cisco Technology, Inc. Routing table lookup implemented using M-trie having nodes duplicated in multiple memory banks
US6389506B1 (en) 1998-08-07 2002-05-14 Cisco Technology, Inc. Block mask ternary cam
US6101115A (en) * 1998-08-07 2000-08-08 Cisco Technology, Inc. CAM match line precharge
US6667955B1 (en) * 1998-08-28 2003-12-23 International Business Machines Corporation Switching fabric system having at least one subsystem including switch core elements arranged in port expansion architecture
US6304575B1 (en) 1998-08-31 2001-10-16 Cisco Technology, Inc. Token ring spanning tree protocol
US6502192B1 (en) 1998-09-03 2002-12-31 Cisco Technology, Inc. Security between client and server in a computer network
DE19840329A1 (en) * 1998-09-04 2000-03-09 Alcatel Sa Telecommunication system with switching device and data concentrator for access to the Internet
US6212561B1 (en) 1998-10-08 2001-04-03 Cisco Technology, Inc. Forced sequential access to specified domains in a computer network
US6470013B1 (en) 1998-10-13 2002-10-22 Cisco Technology, Inc. Use of enhanced ethernet link—loop packets to automate configuration of intelligent linecards attached to a router
US6728839B1 (en) 1998-10-28 2004-04-27 Cisco Technology, Inc. Attribute based memory pre-fetching technique
US6263369B1 (en) 1998-10-30 2001-07-17 Cisco Technology, Inc. Distributed architecture allowing local user authentication and authorization
US6580723B1 (en) 1998-11-02 2003-06-17 Cisco Technology, Inc. Time slotted logical ring
US6490289B1 (en) 1998-11-03 2002-12-03 Cisco Technology, Inc. Multiple network connections from a single PPP link with network address translation
US6885657B1 (en) * 1998-11-30 2005-04-26 Broadcom Corporation Network telephony system
US6898189B1 (en) 2000-08-23 2005-05-24 Cisco Technology, Inc. Restartable spanning tree for high availability network systems
US6801506B1 (en) 1999-03-31 2004-10-05 Cisco Technology, Inc. Method and apparatus for providing fast spanning tree re-starts
US6628624B1 (en) 1998-12-09 2003-09-30 Cisco Technology, Inc. Value-added features for the spanning tree protocol
US6173386B1 (en) 1998-12-14 2001-01-09 Cisco Technology, Inc. Parallel processor with debug capability
US6385747B1 (en) 1998-12-14 2002-05-07 Cisco Technology, Inc. Testing of replicated components of electronic device
US6920562B1 (en) 1998-12-18 2005-07-19 Cisco Technology, Inc. Tightly coupled software protocol decode with hardware data encryption
US6490290B1 (en) 1998-12-30 2002-12-03 Cisco Technology, Inc. Default internet traffic and transparent passthrough
US6298383B1 (en) 1999-01-04 2001-10-02 Cisco Technology, Inc. Integration of authentication authorization and accounting service and proxy service
US6771642B1 (en) 1999-01-08 2004-08-03 Cisco Technology, Inc. Method and apparatus for scheduling packets in a packet switch
US6515969B1 (en) 1999-03-01 2003-02-04 Cisco Technology, Inc. Virtual local area network membership registration protocol for multiple spanning tree network environments
CA2364468A1 (en) * 1999-03-06 2000-09-14 Coppercom, Inc. System and method for administrating call and call feature set-up in a telecommunications network
US7065762B1 (en) 1999-03-22 2006-06-20 Cisco Technology, Inc. Method, apparatus and computer program product for borrowed-virtual-time scheduling
US6757791B1 (en) 1999-03-30 2004-06-29 Cisco Technology, Inc. Method and apparatus for reordering packet data units in storage queues for reading and writing memory
US6760331B1 (en) 1999-03-31 2004-07-06 Cisco Technology, Inc. Multicast routing with nearest queue first allocation and dynamic and static vector quantization
US6603772B1 (en) 1999-03-31 2003-08-05 Cisco Technology, Inc. Multicast routing with multicast virtual output queues and shortest queue first allocation
US6466977B1 (en) * 1999-05-06 2002-10-15 Cisco Technology, Inc. Proxy on demand
US7130315B1 (en) 1999-09-10 2006-10-31 Sony Corporation Method of and apparatus for utilizing extended AV/C command and response frames including transaction label and common result/error code
ATE390788T1 (en) * 1999-10-14 2008-04-15 Bluearc Uk Ltd APPARATUS AND METHOD FOR HARDWARE EXECUTION OR HARDWARE ACCELERATION OF OPERATING SYSTEM FUNCTIONS
US6529983B1 (en) 1999-11-03 2003-03-04 Cisco Technology, Inc. Group and virtual locking mechanism for inter processor synchronization
US6681341B1 (en) 1999-11-03 2004-01-20 Cisco Technology, Inc. Processor isolation method for integrated multi-processor systems
US6678241B1 (en) 1999-11-30 2004-01-13 Cisc Technology, Inc. Fast convergence with topology switching
US6917626B1 (en) * 1999-11-30 2005-07-12 Cisco Technology, Inc. Apparatus and method for automatic cluster network device address assignment
US6636499B1 (en) 1999-12-02 2003-10-21 Cisco Technology, Inc. Apparatus and method for cluster network device discovery
US6895434B1 (en) * 2000-01-03 2005-05-17 Cisco Technology, Inc. Sharing of NAS information between PoPs
US6725264B1 (en) 2000-02-17 2004-04-20 Cisco Technology, Inc. Apparatus and method for redirection of network management messages in a cluster of network devices
US6760720B1 (en) 2000-02-25 2004-07-06 Pedestrian Concepts, Inc. Search-on-the-fly/sort-on-the-fly search engine for searching databases
US20020061309A1 (en) * 2000-03-08 2002-05-23 Garger Stephen J. Production of peptides in plants as N-terminal viral coat protein fusions
US6892237B1 (en) 2000-03-28 2005-05-10 Cisco Technology, Inc. Method and apparatus for high-speed parsing of network messages
US7046778B2 (en) * 2000-03-31 2006-05-16 Coppercom, Inc. Telecommunications portal capable of interpreting messages from an external device
US6681346B2 (en) * 2000-05-11 2004-01-20 Goodrich Corporation Digital processing system including a DMA controller operating in the virtual address domain and a method for operating the same
US6505269B1 (en) 2000-05-16 2003-01-07 Cisco Technology, Inc. Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system
KR100350019B1 (en) * 2000-05-19 2002-08-24 탑헤드 주식회사 Video Signal Processing System for Driving Multiple Monitors
US7433459B2 (en) * 2000-06-19 2008-10-07 Verizon Services Corp. Methods and apparatus for providing telephone support for internet sales
JP2002027012A (en) * 2000-07-03 2002-01-25 Fujitsu Ltd Network connector
KR100575527B1 (en) * 2000-08-22 2006-05-03 엘지전자 주식회사 Method for recording a digital data stream
US6771665B1 (en) 2000-08-31 2004-08-03 Cisco Technology, Inc. Matching of RADIUS request and response packets during high traffic volume
US7411981B1 (en) 2000-08-31 2008-08-12 Cisco Technology, Inc. Matching of radius request and response packets during high traffic volume
US7613183B1 (en) * 2000-10-31 2009-11-03 Foundry Networks, Inc. System and method for router data aggregation and delivery
US6856591B1 (en) 2000-12-15 2005-02-15 Cisco Technology, Inc. Method and system for high reliability cluster management
US7095741B1 (en) * 2000-12-20 2006-08-22 Cisco Technology, Inc. Port isolation for restricting traffic flow on layer 2 switches
US6937562B2 (en) 2001-02-05 2005-08-30 Ipr Licensing, Inc. Application specific traffic optimization in a wireless link
US20020129285A1 (en) * 2001-03-08 2002-09-12 Masateru Kuwata Biometric authenticated VLAN
US20030101268A1 (en) * 2001-05-18 2003-05-29 Davidson David Scott High-level extensible markup language (XML) structure and communication process
US7003604B2 (en) * 2001-10-04 2006-02-21 Sony Corporation Method of and apparatus for cancelling a pending AV/C notify command
US6944704B2 (en) * 2001-10-04 2005-09-13 Sony Corporation Method and apparatus for utilizing extended AV/C command frames including status inquiry, notify inquiry and control inquiry command types
US8068832B2 (en) * 2001-11-19 2011-11-29 Nokia Corporation Multicast session handover
US7177946B1 (en) * 2001-12-06 2007-02-13 Cisco Technology, Inc. Optimal sync for rapid spanning tree protocol
US7672249B2 (en) * 2001-12-13 2010-03-02 Cisco Technology, Inc. Configurable network appliance
US7076543B1 (en) 2002-02-13 2006-07-11 Cisco Technology, Inc. Method and apparatus for collecting, aggregating and monitoring network management information
US7443865B1 (en) 2002-04-04 2008-10-28 Cisco Technology, Inc. Multiple network connections from a single PPP link with network address translation
US7200424B2 (en) 2002-07-15 2007-04-03 Bellsouth Intelectual Property Corporation Systems and methods for restricting the use and movement of telephony devices
US8554187B2 (en) 2002-07-15 2013-10-08 At&T Intellectual Property I, L.P. Apparatus and method for routing communications between networks and devices
US8543098B2 (en) 2002-07-15 2013-09-24 At&T Intellectual Property I, L.P. Apparatus and method for securely providing communications between devices and networks
US8275371B2 (en) * 2002-07-15 2012-09-25 At&T Intellectual Property I, L.P. Apparatus and method for providing communications and connection-oriented services to devices
US8416804B2 (en) 2002-07-15 2013-04-09 At&T Intellectual Property I, L.P. Apparatus and method for providing a user interface for facilitating communications between devices
US8526466B2 (en) 2002-07-15 2013-09-03 At&T Intellectual Property I, L.P. Apparatus and method for prioritizing communications between devices
US8000682B2 (en) 2002-07-15 2011-08-16 At&T Intellectual Property I, L.P. Apparatus and method for restricting access to data
US7877483B1 (en) 2002-10-28 2011-01-25 Cisco Technology, Inc. Virtual local area network pruning protocol
US8233392B2 (en) * 2003-07-29 2012-07-31 Citrix Systems, Inc. Transaction boundary detection for reduction in timeout penalties
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
US8270423B2 (en) * 2003-07-29 2012-09-18 Citrix Systems, Inc. Systems and methods of using packet boundaries for reduction in timeout prevention
US7457822B1 (en) 2002-11-01 2008-11-25 Bluearc Uk Limited Apparatus and method for hardware-based file system
US8041735B1 (en) 2002-11-01 2011-10-18 Bluearc Uk Limited Distributed file system and method
GB0306855D0 (en) * 2003-03-25 2003-04-30 Ideas Network Ltd Data communication network
US7272672B1 (en) * 2003-04-01 2007-09-18 Extreme Networks, Inc. High speed bus with flow control and extended burst enhancements between sender and receiver wherein counter is maintained at sender for free buffer space available
US8432800B2 (en) 2003-07-29 2013-04-30 Citrix Systems, Inc. Systems and methods for stochastic-based quality of service
US7656799B2 (en) * 2003-07-29 2010-02-02 Citrix Systems, Inc. Flow control system architecture
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
US8345701B1 (en) * 2003-08-26 2013-01-01 F5 Networks, Inc. Memory system for controlling distribution of packet data across a switch
US7530112B2 (en) 2003-09-10 2009-05-05 Cisco Technology, Inc. Method and apparatus for providing network security using role-based access control
US7836490B2 (en) 2003-10-29 2010-11-16 Cisco Technology, Inc. Method and apparatus for providing network security using security labeling
US20050097132A1 (en) * 2003-10-29 2005-05-05 Hewlett-Packard Development Company, L.P. Hierarchical storage system
US7774461B2 (en) 2004-02-18 2010-08-10 Fortinet, Inc. Mechanism for determining a congestion metric for a path in a network
US7680885B2 (en) * 2004-04-15 2010-03-16 Citrix Systems, Inc. Methods and apparatus for synchronization of data set representations in a bandwidth-adaptive manner
US7827139B2 (en) 2004-04-15 2010-11-02 Citrix Systems, Inc. Methods and apparatus for sharing graphical screen data in a bandwidth-adaptive manner
US7669244B2 (en) * 2004-10-21 2010-02-23 Cisco Technology, Inc. Method and system for generating user group permission lists
US7877796B2 (en) 2004-11-16 2011-01-25 Cisco Technology, Inc. Method and apparatus for best effort propagation of security group information
US7886145B2 (en) * 2004-11-23 2011-02-08 Cisco Technology, Inc. Method and system for including security information with a packet
US7721323B2 (en) * 2004-11-23 2010-05-18 Cisco Technology, Inc. Method and system for including network security information in a frame
US7827402B2 (en) 2004-12-01 2010-11-02 Cisco Technology, Inc. Method and apparatus for ingress filtering using security group information
US7434262B2 (en) 2004-12-08 2008-10-07 At&T Intellectual Property I, L.P. Methods and systems that selectively resurrect blocked communications between devices
US8223745B2 (en) * 2005-04-22 2012-07-17 Oracle America, Inc. Adding packet routing information without ECRC recalculation
US8443040B2 (en) * 2005-05-26 2013-05-14 Citrix Systems Inc. Method and system for synchronizing presentation of a dynamic data set to a plurality of nodes
US8665892B2 (en) * 2006-05-30 2014-03-04 Broadcom Corporation Method and system for adaptive queue and buffer control based on monitoring in a packet network switch
US7710959B2 (en) * 2006-08-29 2010-05-04 Cisco Technology, Inc. Private VLAN edge across multiple switch modules
US7995499B2 (en) * 2006-11-23 2011-08-09 Cisco Technology, Inc. Minimizing spanning-tree protocol event processing and flooding in distribution networks
US20080159277A1 (en) * 2006-12-15 2008-07-03 Brocade Communications Systems, Inc. Ethernet over fibre channel
US20080181243A1 (en) * 2006-12-15 2008-07-31 Brocade Communications Systems, Inc. Ethernet forwarding in high performance fabrics
US20080159260A1 (en) * 2006-12-15 2008-07-03 Brocade Communications Systems, Inc. Fibre channel over ethernet frame
US7760642B2 (en) 2007-03-12 2010-07-20 Citrix Systems, Inc. Systems and methods for providing quality of service precedence in TCP congestion control
US7796510B2 (en) * 2007-03-12 2010-09-14 Citrix Systems, Inc. Systems and methods for providing virtual fair queueing of network traffic
US7706266B2 (en) * 2007-03-12 2010-04-27 Citrix Systems, Inc. Systems and methods of providing proxy-based quality of service
WO2008131447A1 (en) * 2007-04-23 2008-10-30 Secure Symbology, Inc. Method for using a database to identify a counterfeiting designation and determine the same
US7840708B2 (en) * 2007-08-13 2010-11-23 Cisco Technology, Inc. Method and system for the assignment of security group information using a proxy
US8583780B2 (en) * 2007-11-20 2013-11-12 Brocade Communications Systems, Inc. Discovery of duplicate address in a network by reviewing discovery frames received at a port
US8108454B2 (en) * 2007-12-17 2012-01-31 Brocade Communications Systems, Inc. Address assignment in Fibre Channel over Ethernet environments
US20090296726A1 (en) * 2008-06-03 2009-12-03 Brocade Communications Systems, Inc. ACCESS CONTROL LIST MANAGEMENT IN AN FCoE ENVIRONMENT
US7957374B2 (en) 2008-10-22 2011-06-07 Fortinet, Inc. Mechanism for enabling layer two host addresses to be shielded from the switches in a network
CN101741660A (en) * 2008-11-20 2010-06-16 深圳富泰宏精密工业有限公司 Electrical appliance connecting device
US8848575B2 (en) 2009-02-23 2014-09-30 Brocade Communications Systems, Inc. High availability and multipathing for fibre channel over ethernet
US8238538B2 (en) 2009-05-28 2012-08-07 Comcast Cable Communications, Llc Stateful home phone service
US9071526B2 (en) * 2009-06-22 2015-06-30 Citrix Systems, Inc. Systems and methods for platform rate limiting
US8619586B2 (en) * 2009-10-15 2013-12-31 Cisco Technology, Inc. System and method for providing troubleshooting in a network environment
US8301817B1 (en) * 2010-10-11 2012-10-30 Qlogic, Corporation Ring bus for sharing resources among multiple engines
DE102014202826A1 (en) * 2014-02-17 2015-08-20 Robert Bosch Gmbh Subscriber station for a bus system and method for increasing the data rate of a bus system
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
KR102578553B1 (en) 2015-12-10 2023-09-13 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 Data-Driven Automated Provisioning for Telecommunications Applications
US10129769B2 (en) 2015-12-31 2018-11-13 Affirmed Networks, Inc. Adaptive peer overload control in mobile networks
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
EP3403432B1 (en) 2016-01-15 2020-11-18 Microsoft Technology Licensing, LLC Database based redundancy in a telecommunications network
US11741196B2 (en) 2018-11-15 2023-08-29 The Research Foundation For The State University Of New York Detecting and preventing exploits of software vulnerability using instruction tags
WO2020150315A1 (en) 2019-01-15 2020-07-23 Affirmed Networks, Inc. Dynamic auto-configuration of multi-tenant paas components
US11775470B2 (en) * 2019-11-20 2023-10-03 Intel Corporation Transaction layer packet format

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4386266A (en) * 1980-02-11 1983-05-31 International Business Machines Corporation Method for operating a transaction execution system having improved verification of personal identification
US4475192A (en) * 1982-02-16 1984-10-02 At&T Bell Laboratories Data packet flow control scheme for switching networks
US4491945A (en) * 1982-06-25 1985-01-01 At&T Bell Laboratories Fast packet switch
JPH0618390B2 (en) * 1984-09-26 1994-03-09 日本電気株式会社 Remote control method for data modem
JPS61139873A (en) * 1984-12-13 1986-06-27 Casio Comput Co Ltd Authorization system
US4672533A (en) * 1984-12-19 1987-06-09 Noble Richard G Electronic linkage interface control security system and method
US4707827A (en) * 1986-03-21 1987-11-17 Zenith Electronics Corporation Bridging techniques for local area networks
US4764919A (en) * 1986-09-05 1988-08-16 American Telephone And Telegraph Company, At&T Bell Laboratories Virtual PBX call processing method
US4745593A (en) * 1986-11-17 1988-05-17 American Telephone And Telegraph Company, At&T Bell Laboratories Arrangement for testing packet switching networks

Also Published As

Publication number Publication date
US4922486A (en) 1990-05-01

Similar Documents

Publication Publication Date Title
CA1310733C (en) User to network interface protocol for packet communications networks
US4896319A (en) Identification and authentication of end user systems for packet communications network services
US4897874A (en) Metropolitan area network arrangement for serving virtual data networks
CA1312133C (en) Integrated packetized voice and data switching system
US4872157A (en) Architecture and organization of a high performance metropolitan area telecommunications packet network
US4872159A (en) Packet network architecture for providing rapid response time
US4958341A (en) Integrated packetized voice and data switching system
US4899333A (en) Architecture of the control of a high performance packet switching distribution network
US4942574A (en) Concurrent resource request resolution mechanism
US4977582A (en) Synchronization of non-continuous digital bit streams
US4894824A (en) Control network for a rapid connection circuit switch
US4893302A (en) Arrangement for switching concentrated telecommunications packet traffic
US4872158A (en) Distributed control rapid connection circuit switch
US4875206A (en) High bandwidth interleaved buffer memory and control
EP0335562B1 (en) Architecture and organization of a high performance metropolitan area telecommunications packet network
Partridge et al. A 50-Gb/s IP router
McAuley Protocol design for high speed networks
EP0335555B1 (en) User to network interface protocol for packet communications networks
EP0336598B1 (en) Arrangement for switching concentrated telecommunications packet traffic
EP0335563B1 (en) Distributed control rapid connection circuit switch and controlling method
Biersack et al. Gigabit networking research at Bellcore
Partridge et al. A fifty gigabit per second IP router
JP2594641C (en)
Kalmanek et al. Xunet 2: Lessons from an early wide-area ATM testbed
Ismert ATM network striping

Legal Events

Date Code Title Description
MKEX Expiry