|
Description  |
|
|
BACKGROUND OF THE INVENTION
This invention relates to local area networks and, more particularly, to an
arrangement whereby a broadcast oriented system can be used in conjunction
with a connection oriented system.
In communication systems there are basically two types of systems, namely,
connectionless and connection oriented. Connectionless systems are
broadcast oriented such that every end-system monitors all transmissions
and responds when it "hears" its own address. In a connection oriented
system a calling end-system calls (using some code) a called end-system
and the network acts to establish a communication linkage between the
calling and called system. The typical telecommunication system (when the
end-systems are telephones) operates in the connection oriented mode.
One use of connectionless (broadcast) systems is for establishing Local
Area Networks (LANs) where a number of end-systems, such as host computers
and personal computers (PCs), can become "connected" for the interchange
of data. However, since connectionless LANs are inherently limited in
size, confined to a local area, and difficult to move or re-configure due
to the nature of the broadcast media, it is often desired to take the
features of a connectionless LAN and emulate then with a connection
oriented network. However, the services and features provided by a typical
connectionless LAN, e.g., datagram services and name services, rely on the
broadcast nature of the network where every end-system monitors all
transmissions. Thus, these services do not inherently work in a connection
oriented network because in such networks communications are only directed
to particular end-systems and are not broadcasted to all end-systems.
A problem in a connectionless LAN is that, while any end-system on the LAN
can communicate with any other end-system on the LAN, they do so with no
security control. Thus, it is a desirable feature to add security to a
connectionless network such that calls between end-systems are authorized
before completion.
A further problem with connectionless LANs is their limited bandwidth since
in such systems every transmission is monitored, thereby requiring every
end-system active on the LAN to process large amounts of otherwise useless
data in order to determine which transmissions are destined for it.
One solution to these problems has been to provide a centralized process
within connection oriented system that acts as a server to each
end-system. Each end-system is then connected to the server via a special
connection, referred to as an umbilical connection, over which the
end-system and the server communicate with one another. The server relies
upon both administered information (information stored in the server) and
information that is dynamically on a connection-by-connection basis
obtained from each end-system in order to accept data transmission from
the end-systems over the umbilical connections. When appropriate, the
server directs data transmissions to specified destination end-systems
over the umbilical connections. Based on dialogues carried out over these
umbilical connections, the server also mediates the establishment of
direct connections between end-systems. Thus, it is the server that
controls the communication between all end-systems.
This, however, only solves part of the problem. There remains the problem
that the server does not know the identity of the end-systems.
SUMMARY OF THE INVENTION
Our invention takes advantage of the calling party ID features and the wide
area networking (WAN) capabilities of the Integrated System Digital
Network (ISDN). Using our system, the server associates the calling party
ID of an end-system with the umbilical connection that the end-system sets
up with the server. Thus, the server is able to keep track of each
end-system's "identity" and can associate a message sent over an umbilical
connection with the end-system that sent the message. Using this
mechanism, the server can provide centralized support for name services,
datagram services, and can also mediate virtual circuit connections
between end-systems. The WAN capabilities of ISDN are accordingly used to
"stretch" these LAN features to other physical locations.
With these capabilities, the limitations of a connectionless LAN are
overcome by the connection oriented LAN. First, the size of a connection
oriented LAN is not restricted in the same way that a connectionless LAN
is limited, i.e., by the properties of the broadcast media. Second, the
connection oriented LAN is not limited to a local area by virtue of the
fact that different physical locations can be interconnected in the
traditional manner via a public or private telephone switch.
In our system, a virtual LAN is created in memory in the server process.
The names of one or more virtual LANs are defined in the server process
along with the "identity" (i.e., Calling Party ID) of each end-system in
each virtual LAN. Thus, the set of end-systems is logically partitioned
into many virtual LANs by simply providing the appropriate software
definitions to the centralized server process. End-systems can be added
to, or deleted from, virtual LANs by simply changing the definitions
within the server process. No physical movement of the end-systems is
necessary. Thus, an end-system participates in a single virtual LAN by
specifying the name of that virtual LAN when it attempts to establish an
umbilical connection to the server. An end-system cannot set up an
umbilical connection to the server if 1) it has not been "authorized" to
do so by having its "identity" defined to the server, and/or 2) it has not
been "authorized" to do so by having been defined to the server as one of
the end-systems that can participate in the virtual LAN whose name it
specified when attempting to set up the umbilical connection.
The centralized server mediates the establishment of all calls between
end-systems in the set of virtual LANs and, in the process of doing so,
provides a security function. Recall that the server knows the "identity"
of an end-system (as associated with that end-system's umbilical
connection). Therefore, when an end-system indicates that it wishes to
establish a connection to another end-system, the server can carry out a
detailed verification scheme in order to determine whether the call should
and can be carried out. If so, the server then performs a function that
"authorizes" the call be generating a unique security code which is then
supplied to the calling end-system and to the called end-system. As part
of the establishment of the call between the two end-systems, the
end-systems exchange the security code and compare them for correctness.
Thus, a call from one end-system to another that has not been "authorized"
by the server will not succeed. End-systems are thus prevented from making
"unauthorized" calls to other end-systems.
The centralized server reduces bandwidth problems by virtue of the fact
that it handles the call establishments of all end-systems by directing
the call establishment to the proper end-system. Thus, an end-system has
only to keep track of its own name or names and is not responsible for
having to receive and handle numerous transmissions destined for other
end-systems.
An end-system that wishes to send a datagram message to a multiple of
end-systems sends one copy of that message to the server. The server then
distributes the message only to the end-systems that were specified as the
destinations. Contrast this to a connectionless network in which the
message must be received by all end-systems regardless of which of those
end-systems are the true "destinations" of the message.
In addition, the server, in performing the call mediation services, also:
determines that the calling end-system is not an intruder, determines
whether the called end-system is active (i.e., has an umbilical
connection), determines whether the called end-system is authorized to
accept a call from the calling end-system, and determines whether the two
end-systems have compatible software or protocols. Thus, the server can
prevent needless call attempts between incompatible end-systems. By
performing all of these services, the server effectively reduces the
processing workload of the end-systems, thereby increasing bandwidth
capability of the entire network.
BRIEF DESCRIPTION OF THE DRAWINGS
These and other objects and features, together with the operation and
utilization of the present invention, will be more apparent from the
illustrative embodiment shown in conjunction with the drawings in which
FIG. 1 shows a virtual Local Area Network using our central server,
FIG. 2 shows a flow chart of the umbilical connection establishment
process,
FIG. 3 shows a flow chart of the call set up process,
FIG. 4 illustrates the umbilical connections to the central virtual LAN
server,
FIG. 5 shows a typical prior art Local Area Network,
FIG. 6 shows a typical server database organization, and
FIG. 7 shows a typical VLAN server name table.
DETAILED DESCRIPTION
Turning now to FIG. 1, there is shown a switching control system, such as
PBX 10, with a number of end-systems, such as PCs 120A, 120B, 121A, 121B,
and 122, and computers, such as 3B2 and 111, connected via ports, such as
ports 105-106 to bus 120, such as a packet bus, located within PBX 10.
Also connected to bus 120 is call processor 101, virtual local area
network (VLAN) server 102 and administration unit 103.
Illustrating the type of PCs and computers that could be connected to bus
120, we have shown PCs 120A, 120B, 121A, 121B, and 122, and computers 3B2
and 111. PCs 120A and 120B are daisy chained together, in well-known
fashion as are computers 121A and 121B, 122 and 3B2. Also shown is a
network extension unit 107 which connects multiple daisy chains together.
The operation of this unit is also well-known.
PCs 120A, 120B, 121A, 121B, 122, computer 3B2 and the network extension
unit 107 are connected to the mbit port 105 on system 10 via the IEEE
802.3 1 megabit medium, the specifications for which are contained in the
IEEE 802.3 1 Base 5 Specifications. End-systems 120A, 120B, 121A, 121B,
122 and 3B2 can by any type of equipment. However, the embodiment shown
utilizes the processing capabilities of these end-systems, thus ideally,
these end-systems could be PCs, such as AT&T PC 6300s, AT&T UNIX PCs and
AT&T 3B2 computers.
Host computers, such as computer 111, are connected to the ISDN/DMI port
106 via the DMI medium. The specifications for the DMI interface are
contained in the "Digital Multiplexed Interface" specification available
from AT&T, which publication is hereby incorporated by reference herein.
End-systems such as AT&T PC 6300 require an interface card such as the AT&T
STARLAN network access unit, and the software driver that these
end-systems would use to provide VLAN functionality is DMI Mode 3, with a
NETBIOS interface and ISDN signaling for call control. The specifications
for NETBIOS are contained in the IBM PC Network Technical Reference, which
publication is also hereby incorporated by reference herein. The ISDN
signaling message set is detailed in "ISDN Primary Rate Interface
Specification," published by AT&T, dated March 1985, which publication is
hereby incorporated by reference herein.
End-systems such as the AT&T UNIX PC and computers such as AT&T 3B2 also
require an interface card such as the AT&T STARLAN network access unit. In
addition, the drivers in these units would use DMI Mode 3, ISDN signaling
and the UNIX Transport Level Interface (UTLI) to provide VLAN
functionality. The specifications for UTLI are contained in "AT&T UNIX
System V Network Programmers' Guide," Issue 1, copyright 1986 (DOC
307230), available from AT&T, which document is hereby incorporated by
reference herein.
Computers, such as DMI hose 111, require a DMI interface and drivers that
use DMI Mode 3 and ISDN signaling to provide VLAN functionality. A NETBIOS
or a UTLI interface can be used, depending on the computer.
For control purposes VLAN server 102 is a software process that resides in
system 10. A call processor 101 and administration processor 103 are also
required. VLAN server 102 can run on either call processor 101 or
administration processor 103.
In order for the participating end-system to be part of a VLAN, an
umbilical connection has to be set up between the end-system and the VLAN
server.
The umbilical connection allows the end-system to obtain calling
information from the VLAN server. The end-systems call each other by
names. The system manages calls by telephone numbers. Thus, when an
end-system wants to call another by name, it asks the VLAN server over the
umbilical connection for the telephone number of the destination.
Similarly, end-systems can add and delete names for themselves. The VLAN
server keeps track of these names and associates them with the correct
telephone numbers. FIG. 7 illustrates the name to telephone number
association.
Finally, since datagram services requires no call set up, the VLAN server
has to handle datagrams by sending them along umbilical connections. The
calling end-system sends a datagram to the VLAN server via its umbilical
connection, and the VLAN server puts it on the destination umbilical
connection.
VLAN Partitioning
The VLAN server, therefore, has complete control of which end-systems are
allowed to be on the VLAN. Further, through administration, the VLAN
server can partition end-systems into separate virtual LANs. An end-system
can belong to more than one logical LAN. FIG. 4 illustrates how this is
accomplished.
In FIG. 4, PCs 410 and 412 have been defined to be members of virtual LAN A
(shown with a uniformly dashed line). PCs 411, 412 and 413 and computer
409 have been defined to be members of virtual LAN B (shown with a long
and short dashed line). These definitions were provided to server 407
through switch administration 408. The definitions are maintained by
server 407 in its database as shown in FIG. 6.
Note that end-system 412 is defined to be a member of both virtual LAN A
and virtual LAN B. End-system 412 may thus participate in connections via
both LANs, but can only participate in connections one at a time.
The end-system specifies in which of the virtual LANs that it wishes to
participate at the time it establishes an umbilical connection. Thus, an
umbilical connection is directly associated with a particular virtual LAN
defined within server 407. In the illustration shown, end-system 412 could
be participating in virtual LAN A. At any given time, end-system 412 may
tear down its umbilical connection for virtual LAN A, thus terminating its
participation in that virtual LAN, and it may then set up an umbilical
connection for virtual LAN B in order to participate in that virtual LAN.
An end-system which has not set up an umbilical connection will not be able
to participate in a LAN. In this state, it cannot request any broadcast
services, such as name services or datagram services, from VLAN server
407. Additionally, server 407 will not forward any data to it from other
end-systems and will prevent other end-systems from attempting to call it.
End-systems can send special instructions, such as "not active" to the
server. Communications will not be sent to an end-system while such an
instruction is present in the server.
Any end-system may be added to one or more virtual LANs which are known to
server 407 or may be deleted from a virtual LAN. For example, end-system
411 may be deleted from virtual LAN B and added to virtual LAN A simply by
instructing switch administration 408 to update the database of server
407.
FIG. 5 serves to illustrate the difference between virtual LANs and prior
art stand-alone LANs. In this figure, end-systems 610 and 612 are members
of LAN A. End-systems 611, 613 and 614 are members of LAN B. This
membership is implicit in the fact that the end-systems are physically
attached to those LANs. Whether or not the end-systems are participating
in their respective LANs depends soley upon whether they are powered-up
and running the appropriate network interface software. Thus, each
end-system is a member of one LAN because each end-system is attached to
only one LAN. In order to move an end-system from one LAN to the other,
the physical connection must be changed, implying that the end-system
probably must be moved.
VLAN Security
In order to prevent end-systems from dialing each other without the
knowledge of the VLAN server, the following security code scheme is used,
as discussed with respect to FIG. 3 of the Call Set Up Sequence:
During name service call set up, the VLAN server sends a randomly generated
unique security code SEC.sub.-- CODE to the destination, which is saved by
the destination driver.
The VLAN server then sends the SEC.sub.-- CODE to the calling end-system,
whose driver then sends the SEC.sub.-- CODE to the destination driver, who
checks to see if it matches with the one it received from the VLAN server
earlier. If it matches, the call is allowed.
VLAN Brokerage
In addition, since the VLAN server knows the status of all end-systems, it
can police call set ups by cutting down unnecessary attempts when the
destination has not posted a LISTEN, i.e., the destination is not active.
This is illustrated in process 302 in FIG. 3: Call Set Up Sequence.
Umbilical Connection Establishment
FIG. 2 illustrates the sequence of high-level steps performed to establish
an umbilical connection between an end-system and VLAN server 102 (FIG.
1).
The virtual LAN Mode 3 NETBIOS driver in the end-system (such as PC 110,
FIG. 2) starts up and does some initialization, e.g., establishes the
signaling link between itself and PBX Call Processing over which virtual
circuit connection establishment is carried out, as shown in process 201.
The end-system places a call to VLAN server 102 using alphanumeric
dialing, as shown in process 202. The alphanumberic dial string that is
supplied is a symbolic name for the virtual LAN in which the end-system
wishes to participate.
Call Processing 101 (FIG. 2) translates the alphanumeric dial string into
the associated extension number for that virtual LAN (as defined through
the switch administration software contained in unit 103, FIG. 1). It
recognizes the extension number as one to which server 102 will respond.
Call processing 101 then sends a message to server 102 to inform it that a
call destined for it has been requested. Within the message, as shown in
process 203, call processing supplies the extension number of the calling
end-systems as the Calling Party ID and the translated extension number as
the Called Party ID in order to identify the origin and destination of the
requested call.
Server 102 facility checks process 204 to see if the calling end-system
identified by the Calling Party ID is a valid member of the virtual LAN
specified by the Called Party ID, again, as defined through the switch
adminstration software. If so, server 102 responds, process 205, to call
processing 101 that it will accept the call. Otherwise, the server
responds that the call is to be rejected.
In this example, the calling end-system has been defined to be a member of
the virtual LAN in which it is attempting to participate. Server 102 sends
a call acceptance message, process 205, to call processing, which in turn
sends a call connect message, process 206, to the end-system which
indicates that the call has been accepted and that a physical connection
has been set up.
Software layers in the end-system driver and in the PBS's communications
support, processes 207, 208, 209 and 210, carry out dialogues with one
another on a layer-to-layer basis, called "handshaking," to verify that
like-layers are compatible and to establish communication between the
like-layers. First, a handshake is performed between the data link layer
(level 2) software, process 207, in the end-system and in the PBX. Then, a
handshake, process 208, is performed between the network layer (level 3)
software in the end-system and in the PBX. At this point, the virtual
circuit connection that is to become the umbilical connection is
established.
Prior to carrying out virtual LAN message exchanges over the virtual
circuit connection, a handshake, process 209, must be performed between
server 102 and the layer of the end-system driver that handles virtual LAN
messages in order to verify their compatibility. The end-system is
responsible for sending a handshake message to the server which conveys
the software version and release numbers of the end-system driver.
Server 102 compares the end-system's driver version and release numbers
with its own version and release numbers. In this example, the numbers are
compatible and so the server sends the end-system a reply message, process
210, in response to the handshake message indicating that the handshake is
successful. At this point, the umbilical connection has been successfully
established.
Next, as shown in process 211, the end-system and the server may exchange
virtual LAN messages with one another to carry out name services, datagram
services, and call mediation services, etc.
Name Service and Call Set Up
Once the umbilical connection is set up, an end-system can make calls to
other end-systems on the same LAN, with the help of VLAN server 102
without going through the rigorous umbilical connection set up procedure.
FIG. 3 illustrates the sequence of high-level steps performed to set up a
virtual circuit connection and establish a session between two end-systems
participating in the same virtual LAN.
The virtual LAN Mode 3 NETBIOS driver in end-system 110, as indicated by
its name, provides a NETBIOS interface to which application programs can
issue network-related commands. In order to initiate a call to another
end-system, an application in the origin end-system issues a CALL command,
process 301, to the NETBIOS interface of the driver. Two of the parameters
specified in the CALL command are the name of the origin (FROM.sub.--
NAME) placing the call and the name of the destination (TO.sub.-- NAME) to
which the call is directed.
In order to indicate to the driver that it wishes to receive a call from
another end-system, an application on destination end-system 120A issues a
LISTEN command, process 302, to the NETBIOS interface of the driver. Two
of the parameters specified in the LISTEN command are the name of the
origin (FROM.sub.-- NAME) from which the call will be accepted and the
name of the destination (TO.sub.-- NAME) that wishes to receive the call.
The driver in the originating end-system accepts the CALL command and sends
an S.sub.-- CALL, process 303, message to server 102. The S.sub.-- CALL
message carries TO.sub.-- NAME and FROM.sub.-- NAME as specified in the
CALL command.
Upon receipt of the S.sub.-- CALL message, server 102 performs some
verification steps (e.g., is the origin name really a member of the
virtual LAN associated with the umbilical connection over which the
message was received?; is TO.sub.-- NAME known in this virtual LAN?; are
the version and release numbers of the drivers at the two end-systems
compatible?; etc.) If server 102 verifies that the call request can and
should be attempted, it sends a LIST.sub.-- QUERY message, process 304, to
destination 120A. The purpose of the LIST.sub.-- QUERY is to determine if
that end-system has issued a LISTEN specifying TO.sub.-- NAME as the
destination name and FROM.sub.-- NAME as the origin name.
An important piece of information that the server 102 includes in the
LIST.sub.-- QUERY is a unique security code (SEC.sub.-- CODE) that is
associated specifically with this particular call request. The driver in
destination end-system 120A receives the LIST.sub.-- QUERY and checks to
see if there is an outstanding LISTEN command that specifies TO.sub.--
NAME as the destination name and FROM.sub.-- NAME as the origin name. In
this example, it finds the outstanding LISTEN. The driver saves the
SEC.sub.-- CODE from the LIST.sub.-- QUERY in anticipation of receiving
the call. The driver then sends, process 305, a reply to the LIST.sub.--
QUERY (RP.sub.-- LIST.sub.-- QUERY) that contains a return code indicating
that an outstanding LISTEN was found and, therefore, that the call request
is acceptable.
Server 102 receives the positive RP.sub.-- LIST.sub.-- QUERY and sends a
reply, process 306, to the S.sub.-- CALL (RP.sub.-- S.sub.-- CALL) to
calling end-system 110. The RP.sub.-- S.sub.-- CALL. contains a return
code indicating that the requested call can be attempted.
Server 102 includes two important pieces of informatiton in the RP.sub.--
S.sub.-- CALL. One is the extension number of destination end-system 120A
that calling end-system 110 must dial in order to set up the call. The
second is the unique security code (SEC.sub.-- CODE) that was generated
and included in the LIST.sub.-- QUERY sent to the destination end-system.
The driver in calling end-system 110 receives the positive RP.sub.--
S.sub.-- CALL and dials, process 307, the indicated extension number in
order to set up the physical connection to destination end-system 120A.
Destination end-system 120A answers and accepts the call via process 308,
and the data link layers as discussed with respect to FIG. 2 of the two
end-system drivers handshake, process 309. This is followed by handshaking
between the network layers of the two end-system drivers, process 310. At
this point, the virtual circuit connection has been successfully
established and calling end-system 110 driver then sends a message,
process 311, to request a session (REQ.sub.-- SES) to the destination
end-system over the virtual circuit connection. The REQ.sub.-- SES
contains the SEC.sub.-- CODE generated for this call be server 102.
Destination end-system 120A driver receives the REQ.sub.-- SES message and
compares the SEC.sub.-- CODE contained within it with the SEC.sub.-- CODE
saved from the LIST.sub.-- QUERY for this call. In this example, the two
codes match and so the destination end-system accepts the session request.
At this time, the destination end-system driver notifies, process 312, the
application that issued the LISTEN that the LISTEN has completed
successfully by sending a reply, process 313, to the REQ.sub.-- SES
(RP.sub.-- REQ.sub.-- SES) to the calling end-system. The RP.sub.--
REQ.sub.-- SES contains a return code that indicates that the session is
accepted by the destination end-system.
The origin end-system driver receives the positive RP.sub.-- EQ.sub.-- ES
and notifies the application, process 314, that issued the CALL that the
CALL has completed successfully. The applications on the two end-systems
can now exchange data by issuing the appropriate data transfer and receive
commands, process 315, to the NETBIOS interface of their respective
drivers.
* * * * *
|
|
|
|
|
Description  |
|