|
Description  |
|
|
BACKGROUND
1. Field of the Invention
This invention relates to computer networks and, more particularly, to
novel systems and methods for connecting a computer as a node on a
network.
2. The Background Art
Computer networks are actually many networks, or are defined at several
levels of grouping and communication. The terms primary (e.g. LAN),
secondary (e.g. routed) and tertiary (internetworked) network indicate the
extent and complexity of a "network". A primary network may be thought of
as the most fundamental connecting together of two nodes (e.g. computers,
workstations, devices) in some manner. A secondary network is one
including at least two primary networks connected by a router. A tertiary
network is one including at least first and second primary networks
separated from each other by a third (intervening) primary network. The
third intervening primary network is connected to the first primary
network by one router, and to the second primary network by another
router. A secondary network, and especially a tertiary network, may also
be referred to as internetworks.
Low level networking typically involves several devices exchanging data
with one another. Transmission may be facilitated by a communication link,
for example a hard wire, fiber-optic cable, radio frequency
transmitter/receiver, or other physical communication mechanism,
connecting a series of network cards. Network cards provide a mechanical
and data connection between the communication link (e.g. fiber-optic,
wire, or wireless) and any device to be connected to the network. A device
may typically contain a processor, such as a computer or peripheral
equipment. The processor may be programmed with communication software
(programming instructions) for communicating data between the device and
the network communication link. Each such device (computer or peripheral)
is a node on the network. Some networks have a server.
A server is a computer connected to a network via a network card and is
programmed to act as a traffic manager and storage device for data being
transmitted over the network by the various connected nodes. A hard wire
interconnected to a group of network cards with attached computers, with
one of those computers acting as a server, is a typical network. In other
networks, every device is a server.
A primary network is the network with which a node communicates most
directly. A primary network is the most fundamental system that can be
called a network. A secondary network is a network connected in some way
to a node, but exchanging data with a node through a router. A router is a
computer connected to at least two primary networks.
By secondary network is meant routed networks comprised of primary networks
interconnected by a router. Because a router is a computer connected to at
least two networks, it may be programmed to manage the communication of
data between nodes on different primary networks. Two nodes, each
connected to a different primary network, with those two different primary
networks directly communicating through (e.g. sharing, typically directly
connected through) a single router constitute a secondary network.
A tertiary network is one in which data may be exchanged between two nodes
on different primary networks, which primary networks do not share a
router. When a primary network is connected to more than one router, and
each such router is connected to more than one primary network, a tertiary
network exists. Since tertiary networks may extend from one primary
network to another through several intervening primary networks and
routers, the routers must be programmed to receive and forward messages
from nodes that arc foreign to any given router. Foreign may be thought of
as describing any device or data pertaining to a primary network that is
not connected to a router shared with the subject network. Thus, as the
name network implies, a tertiary network can extend indefinitely from
router to router to router via intervening primary networks.
(Theoretically virtually forever, within the constraints of the laws of
electrophysics.)
A wireless communication system may not require any hard wire connection.
In general, a link between a node and a primary network may be wireless.
Each node may contain a network card for sending and receiving data by
wireless transmission with respect to another device. Thus an entire
primary network may be wireless. Also, a network between two routers
forming a wide area network (WAN), may be wireless. Alternatively, a
network using a hard wire may have access points. An access point bridges
between a hard wire associated with a primary network and a node
communicating by a wireless communication link with that primary network.
An access point includes a wireless transmitter and receiver for
communicating with a wireless network card in a node, as well as a
connector communicating with the hard wire of the network. Thus, all
access point may be thought of as a transmitter and receiver for
communicating data between a network and a node not hard wired into that
network.
As computer network technology has grown to encompass tertiary networks,
network level addressing has become more than a locally administered task.
By address is not meant MAC layer address in an ISO/OSI data-link layer.
That addressing is resolved by an access point as a user roams. The need
is for unambiguous ISO/OSI network layer addressing during roaming and
dynamic address changing.
A data package (message, packet, stream) needs to be communicated to a
destination address. A source address is needed for a response to be
returned. An address may be thought of as a one or more numbers, digits,
characters, words, bytes, combination thereof, or the like included in a
data transmission, identifying a sender or receiver.
As internetworks, (tertiary networks) become very large, a scheme is needed
for easily addressing all the interconnected nodes interconnected at a
network ISO/OSI level. (International Organization for Standardization
Open Systems Interconnection model.) Remote (foreign, more than one hop
distant) nodes are not controllable by a network. A single message to or
from a foreign node must be transmissible and receivable without
confusion.
For example, when a single computer connects to several peripheral devices,
the computer may assign, or a user may assign, all address to each
peripheral device. When several nodes (devices, computers, etc.) are
connected in a network, software in a network server may control, assign,
or coordinate addresses. For example, a network manager (user) may program
the server on a primary network to recognize a unique number for each node
connected to the network. Thus a server could receive and deliver data
with respect to each node. Two routers could likewise be programmed to
communicate and coordinate addresses. However, as soon as three routers
are involved, foreign nodes become intractable to address without a global
addressing scheme. Moreover, routers may connect without practical
limitation as to numbers of primary networks to which each may connect.
To address this problem organizations exist for administering global
addresses to devices that a user desires to connect to a network. Thus,
schemes exist for a user to acquire a global address by which a device may
be known, regardless of network connection. For example, users on a
network or service receive an assigned address. Also, every
network-connectable device connects to a network card, often within the
envelope of the device. Each network card has assigned by the Institute
for Electrical and Electronic Engineers (IEEE standard 802)
identification. The identification is unique to that card at the Media
Access Control, or MAC, sublayer of the ISO/OSI data-link level.
Any primary network communicates data corresponding to addresses of nodes
connected to that network. Similarly, a router may communicate data
associating the router with addresses of nodes connected to primary
networks accessed through that router.
Unfortunately, a user logging on to a network must configure a node.
Configuration may be thought of as programming a node for setting up
connections and protocols. A node may need to identify other devices to be
addressed, or to identify itself to a router assigning the address of the
node. Thus, once configured, a node may send and receive messages.
However, logging onto a network and configuring a node's system typically
takes substantial time. Moreover, knowledge of certain commands, codes and
the like is typically required of a user. Also, whenever a node is not
going to be available any longer, a user must log off the network so that
the network does not treat the absence of a node as an error.
No primary network extends indefinitely. Some limitations may arise due to
security, media change, traffic load, addressing, or physical limits. For
example, radio signals are shielded by metal preventing transmission.
Obstructions limit an infrared line of sight. Thus, a wireless network is
typically limited to a single floor of a building, and to a specific range
of distance. Even hard-wired networks are constrained by limitations of
power, integrity of signal transmission, and interference, associated with
distances traversed by a primary network.
Because no primary network can extend indefinitely, and because of the
administrative difficulties on system administrators of network servers
and on individual users having to log on and off to move about between
primary networks, roaming is desirable. Roaming may be thought of as
communication by a node (e.g. computer, processor, peripheral device) at
more than one connection point on an inter-network. That is, a roaming
device may be a computer carried by an individual walking over a factory
floor serviced by several wireless LANs.
Roaming may include disconnecting a node from a first primary network
followed by connecting the node to a second primary network without
intermediate logging off and on. Several examples of roaming situations
are instructive. For example, on a factory floor, personnel may move from
location to location logging data associated with manufacturing or
shipping operations. With the advent of stylus based input devices, many
operations formerly done by hand, such as recording counts while
inventorying stock, for example, are now done with an input pad and
stylus. Similarly, a host of tasks once done by hand, and involving a
person who moves from location to location throughout a day, are now
computerized but must still be accommodated by roaming.
Roaming is impossible in some networks. That is, a system manager must
configure a network server to recognize a new node. Meanwhile, in such
networks a configuration of more than one primary network to
simultaneously accept a node's global address may not be possible. Thus,
the node cannot be moved from one primary network to another at the will
of an individual user.
Even in networks that permit roaming, addressing may present a major
difficulty for secondary and tertiary networks. For example, in the
addressing and routing process to reach a mobile node, three routers may
typically be required to be loaded with different specialized software
that must be available and upgraded in any network to which a mobile node
roams in an internetwork. Networks today do not allow a node to roam to a
network in an internetwork that does not have specialized software hosted
on specialized processors forwarding messages, and specialized processors
for logging on. That is, mobile devices may not generally log on to a
network remote from their "home" network, unless the remote network
includes processors programmed specifically for forwarding messages, and
processors programmed specifically for logging the mobile devices on to
the network. The requirements for the existence and upkeep of such systems
inhibits roaming.
What is needed is a plug-and-play system. A system is needed in which all
of the addressing of a node is transparent to a user. Moreover, a system
is needed that requires less of a remote network, such as fewer
specially-programmed processors (routers, foreign agents, etc. ) during
roaming, as well as fewer upgrades of software by a system manager.
Disruption by a node may be a serious problem in network software hosted on
nodes. A server may "hangup" on a node when the node has dropped out. That
is, for example, a server periodically queries a node to determine whether
or not the node is still connected to that network. Thus, if a proper
response is not received, the server closes the "session" or data
connection with the missing node, but may instead wait indefinitely for an
event that never comes. One example is an application that is waiting for
a response over a network, and has control over a node temporarily, that
is not relinquished when the response never arrives.
An application is a computer program including one or more instructions. An
application operates in the highest OSI layer. An application is also
sometimes referred to as a computer program. When an application is
running on a node, or when a network session is running, an application
may be relying on the network connection to pass data.
When an application requires data through the network connection and the
data is not forthcoming because the connection between the network and
node has been disrupted, the application may "crash," or instead "hang"
the node. Hanging means that a device has ceased to respond to data. That
is, a processor may cease to respond to instructions, commands, inquiries
and the like because some instruction is awaited by the processor, and the
instruction is not forthcoming.
Hanging is different from crashing in that an application or system
(operating system) may crash by ceasing all operation. Crashing usually
results in the computer requiring a re-boot. Hanging may require a
re-boot, but is usually characterized by the output device (e.g. monitor
or display) remaining as it is without providing any further output nor
prompts, and not responding to any inputs.
Another problem for mobile nodes on an interact work is system watchdogs.
System watchdogs are programs resident in a server for monitoring the
status of connections between the network and nodes. When a connection is
disrupted the watchdogs initiate disconnection of the offending node by
the server.
If a file is open and the connection is broken, the connection must come
back before the node tries to read data from the server. If the connection
does not come back in time, the node or application on the node may crash
regardless of whether or not the router's connection can be
re-established. Thus the node is crashed and the fact that the connection
is remade does not bring the node back.
Node disruptions and dropouts are most often caused by events that may
happen during the life of a connection (e.g. session). Generally, these
events are related to activity that interrupts the continuity of a network
node address, the continuity of a physical network connection, or the
continuity or quality of a network session.
One need is that of dynamically resolving the changing of addresses in a
network. Some causes of dynamic changing of addresses are roaming and "hot
swapping" of a network interface card in a node without logging off or
shutting down either the node or the hosted applications.
By hot swapping is meant the removal and replacement of a network card in
the network slot of a computer without shutting down, logging off a
network, or closing applications. For example, a user may withdraw a
network card and replace that card later with the same or a different
network card. Thus, a computer may be disconnected from a network simply
by withdrawing the computer from the network card associated with the
network. Similarly, a network card may be hot swapped with respect to the
network carrier, such as a line, wireless connection, fiber-optic cable,
twisted pair, coaxial cable, or the like that carries the electronic
signal between a node and a network server or other devices on the
network.
Another need is graceful recovery or adaptation to different or reduced
performance by a network (e.g. by a node, router, or server), in lieu of
crashing or hanging. For example, suspension and recovery from a disrupted
connection resulting from sleeping, moving out of range of a wireless
access point, breaking a wired connection, and or a time lag during a hot
swap of network cards such as PCMCIA cards.
Another need is storing and binding two or more actual addresses, as well
as a virtual address, each to be selectively useable for a single client
node on a single network or an internetwork. A device may not be addressed
at more than one real address at a time, although a router may present
different addresses for itself to different networks. However, a need
exists to selectively and dynamically switch between network interface
cards in a node having multiple slots for such cards. For example,
enablement of automatic switching between a default and a backup card when
a default card drops out is very desireable.
A user-transparent, mobile interface for networks and internetworks is
needed that permits roaming without requiring a new home router to exist
at a new remote network for logging-on. Also new remote network after
roaming. Moreover, a system is needed that does not require pre-existing
specialized equipment at a remote location to which a node may roam on an
internetwork. Rather, what is needed is a system that permits a mobile
node to access the logging on and roaming features from any remote network
operating under a standard network protocol (such as IPX), so long as the
remote network is part of an internetwork containing a router configured
for providing a constant virtual address and binding it to an actual
address for the mobile node. Otherwise, mobility is impaired when a
location does not have the right type of hardware or software locally
resident. Moreover, software upgrading and version control become serious
burdens at all the remote locations. A system that permits logging on to a
home router virtually any number of hops away on an internetwork, and
roaming likewise with a minimum of software and hardware is needed.
BRIEF SUMMARY AND OBJECTS OF THE INVENTION
In view of the foregoing, it is a primary object of the present invention
to provide a system for providing continuous, transparent communication
between a mobile node and a primary network, a mobile node and a secondary
network, a mobile node and a tertiary network, and a mobile node and
another node on a primary, secondary, or tertiary network.
It is an object of the invention to resolve dynamic changing of network
addresses in a network, secondary network, and tertiary or internetwork.
It is an object of the invention to provide dynamic changes of addresses,
for example, due to roaming or hot swapping of a network interface card in
a node, without logging-off or shutting-down either the node or the hosted
applications running on the node.
It is an object of the invention to enable dynamic switching between
multiple network cards having respective default and backup addresses
corresponding to a single node on a network, without hanging any device on
the network and without crashing any device on the network.
It is an object of the invention to provide for suspension and recovery
from a disrupted connection between a node and a network.
It is an object of the invention to provide for storage and access of two
addresses simultaneously for a single node on a network, and for a single
node in an internetwork.
It is an object of the invention to provide a virtual address that remains
constant during a session, which session will not be interrupted, for
example, by roaming, disconnection, or suspension of a node from a network
or internetwork, and an actual or local address corresponding to a
physical location of a node on a network in an internetwork.
It is an object of the invention to provide simultaneous storage for two or
more addresses each corresponding to a different network cards or other
interface card physically connected to a single node on a network.
It is an object of the invention to provide simultaneous loading of, and
dynamic switching between, multiple network interface cards in a computer
for accessing a network.
It is an object of the invention to provide a system for supporting the
dynamic switching from one card to another card by a node, in which one
card fails to maintain a network connection, in a manner that provides a
backup connection of services through the second card.
It is an object of the invention to provide for redundant network
interfaces for a node roaming across network boundaries.
It is an object of the invention to support a user-transparent, mobile node
for roaming between networks in all internetwork without requiring a new
home router at a new location, or a new log-on to the remote network at
the new location.
It is an object of the invention to enable the user transparent, mobile
network connection of applications running on a mobile node when that
mobile node roams out of range of a wireless connection to a network or
physically disconnects from a hard-wired connection to a network, and
later re-establishes physical or data-link connections to the same or a
new network.
It is an object of the invention to provide a mobile node and network in
which the mobile node may roam between a selection of wireless and
hard-wired connections on an internetwork connected to the network, and
where the node can log-on and can maintain session continuity throughout
the internetwork, even if a home router, foreign agent, or other device
similarly configured is not present on a remote network to which the node
attempts to connect.
It is a further object of the invention to provide a mobile network
interface that may operate at any location selected by a user including a
remote network removed from the network normally accessed by a user.
It is another object of the invention to provide for connection of a mobile
node while requiring a reduced amount of software, and upgrading of such
software, for supporting devices, such as routers, for example, in an
internetwork.
It is an object of the invention to provide a network supporting a device
roaming across primary networks connected in a tertiary network.
It is an object of the invention to automatically configure a network to
address roaming nodes according to a method transparent to a user, without
requiring intervention by a user in creating or identifying network
addresses of a node in a primary, secondary or tertiary network.
It is an object of the invention to provide a system for user-transparent
roaming between wireless networks, between hard-wired and wireless
networks, and vice versa, and for supporting hot swapping of network cards
from wireless to wire and back within a single node, without disconnecting
a session.
It is an object of the invention to control data communication and
addressing for a node on a primary network connected to any one of a
plurality of primary networks and a home router, and automation of roaming
network addressing transparently to the user.
It is an object of the invention to spoof network "watchdogs" by
configuring a home router responsive to the queries of network watchdogs.
Consistent with the foregoing objects, and in accordance with the invention
as embodied and broadly described herein, a method and apparatus are
disclosed in one embodiment of the present invention as including a mobile
host operably connectable to a network, the network being operably
connected to a home router for assigning a constant address to the mobile
host, and for storing the constant address, a changeable local address
assigned by the mobile host, and binding data relating the constant
address to the local address. The constant address is an ISO/OSI network
level address corresponding to a virtual network and virtual node number
created by the home router and uniquely identifying the mobile host
throughout a session. The local address is an ISO/OSI network level
address corresponding to a network on a router, which need not be the home
router, and a unique geographical location (connection point) on the
network, (to which a mobile mode might be connected only temporarily, to
later be connected to another network). The local address also uniquely
identifies the mobile host to the home router during the time that the
mobile host is linked to the connection point of the network.
An apparatus made in accordance with one embodiment of the invention may
include an internetwork including a plurality of networks interconnected
by a plurality of routers. The apparatus also may include wired networks
and wireless networks each network containing one or more nodes or hosts
connected thereto for communicating data over the internetwork.
The apparatus may include a home router programmed to store multiple,
ISO/OSI network level addresses (addresses) for nodes connected to a
network. The home router may also be programmed to create for a node on a
network a constant address, assign the address to the node, receive from
the node a local address created by the node, bind the constant address
and the local address, and store both the constant and local addresses.
The node may be programmed to be a mobile node. The mobile node may roam
across multiple routers and networks, and may access the home router
whenever a connection is made with another network, forwarding to the home
router a new local address at each new network. The home router may be
programmed to forward to the current or present local address,
corresponding to the mobile node, all packets addressed to the virtual or
constant address corresponding to the mobile node.
The home router may be programmed to change headers on packets addressed to
the mobile node to properly direct all packets addressed to the constant
address, and all packets addressed to and from the present local address
corresponding to the mobile node.
Multiple home routers may be programmed to be accessible (to transmit and
receive data) from mobile nodes connected to networks not containing a
home router. A home router may be programmed to log a mobile node on
without regard to the number of hops between the mobile node and the home
router. A home router may be programmed to access the mobile node and
store addresses regardless of the number of hops between the home router
and the mobile node.
The mobile node may be programmed to permit a user to change the network
card in the mobile node without shutting off power to the processor,
without logging off the internetwork, and without closing the applications
running on the mobile node. The mobile node may also include slots for
multiple network cards, and may include slots for being connected to the
internetwork with two network cards simultaneously. The mobile node may be
programmed to transfer data via a preferred card of the multiple network
cards. The mobile node may provide for transfer of data via a less
preferred card of the multiple network cards upon a failure of the
preferred card to maintain a data-link or other necessary connection to
the internetwork. The home router may be programmed to store two or more
local addresses corresponding to two or more network cards, in addition to
a virtual address, all of which addresses uniquely correspond to the
mobile node.
A method practiced in accordance with an embodiment of the invention may
include advertising on an internetwork by a mobile mode comprising a
processor. The method may include a response by a home router, and logging
on to the home router by the mobile node. The mobile node may obtain from
a network card associated with the mobile node, an ISO/OSI MAC layer
address.
The mobile node may obtain from the home router or from a network server a
network number identifying a network to which the mobile node is
communicably connected by the network card. The mobile node may define a
local address. The local address may include data corresponding to the MAC
layer address of the network card and the network number. Because a MAC
sub-layer address for each network card is unique, the mobile host may
create multiple local addresses over multiple connection points, including
hard-wired and wireless access points.
A user may connect a mobile node to multiple network cards, and may connect
more than one of the multiple network cards to a network to be connected
simultaneously. The home router may receive from the mobile node one or
more local addresses, corresponding to the one or more network cards.
The home router may create a virtual network and a virtual node number. The
home router may assign to the mobile node a virtual address. The virtual
address may contain data corresponding to the virtual network number and
the virtual node number.
The home router may bind the virtual address to one or more local addresses
corresponding to the mobile node. The home router may advertise over the
internetwork that the mobile node may be reached through the home router.
The home router may advertise the address of the mobile node as the
virtual address.
The home router may assign a priority or preference to each card, which may
be identified during use with a unique local address associated with the
mobile node. When multiple addresses are simultaneously associated with
the mobile node, the home router may exchange data over a highest priority
network card providing au available connection to the internetwork or the
home router. The home router or the mobile node may select from a
plurality of local addresses, associated with a mobile node, a local
address providing the highest bandwidth connection for exchanging data
with the mobile node.
The home router may change the header in a packet addressed to the mobile
node. The home router may change the destin | | |