U.S. patent application number 11/207862 was filed with the patent office on 2006-03-02 for method and apparatus for wireless networking.
Invention is credited to Robert S. Bell, William M. Brown.
Application Number | 20060047841 11/207862 |
Document ID | / |
Family ID | 24379488 |
Filed Date | 2006-03-02 |
United States Patent
Application |
20060047841 |
Kind Code |
A1 |
Brown; William M. ; et
al. |
March 2, 2006 |
Method and apparatus for wireless networking
Abstract
A method and apparatus for wireless networking employs a
wireless protocol module and a wireless interface module for
controlling a remote terminal unit, whereby the modules integrate
the remote terminal unit software and wireless networking
application software.
Inventors: |
Brown; William M.; (San
Marcos, CA) ; Bell; Robert S.; (Oceanside,
CA) |
Correspondence
Address: |
JERRY RICHARD POTTS
3248 VIA RIBERA
ESCONDIDO
CA
92029
US
|
Family ID: |
24379488 |
Appl. No.: |
11/207862 |
Filed: |
August 19, 2005 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
09594581 |
Jun 12, 2000 |
|
|
|
11207862 |
Aug 19, 2005 |
|
|
|
Current U.S.
Class: |
709/230 |
Current CPC
Class: |
H04L 69/16 20130101;
H04W 40/02 20130101; H04W 80/00 20130101; H04L 69/168 20130101;
H04L 69/08 20130101; H04L 69/169 20130101 |
Class at
Publication: |
709/230 |
International
Class: |
G06F 15/16 20060101
G06F015/16 |
Claims
1. (canceled)
2. (canceled)
3. (canceled)
4. (canceled)
5. (canceled)
6. (canceled)
7. (canceled)
8. A method of creating a wireless network infrastructure between a
plurality of remote terminals and base stations within wireless
communication range of one another, comprising: discovering
wirelessly whether individual ones of the plurality of remote
terminals and base stations have active communication nodes; and
creating wireless communication links with only those individual
ones of the plurality of remote terminals and base stations having
active communication nodes.
9. A method according to claim 8, wherein said step of discovering
includes: periodically polling, over exponentially increasing
periods of time, the plurality of remote terminals to discover
wirelessly whether individual ones of the plurality of remote
terminals previously not having active communication nodes now have
active communication nodes.
10. A method according to claim 9, further comprising: creating
other wireless communication links with those individual ones of
the plurality of remote terminals and base stations now having
active communication nodes.
11. A method according to claim 8, further comprising: requesting
permission from an individual one of the remote terminals and base
stations having a discovered active node permission to transmit at
least one data packet of input information; sending at least one
data packet of input information to the discovered active node; and
releasing said individual one of the remote terminals and base
stations having a discovered active node to request permission from
another individual one of the remote terminals having another
discovered active node permission to transmit at least one data
packet of input information.
12. A wireless communication system for controlling the allocation
of a payload bandwidth between a plurality of communication nodes,
comprising: a wireless protocol module for discovering wirelessly
whether individual ones of the plurality of communications nodes
are in an active state and for creating wireless communication
links with only those individual ones of the plurality of
communication nodes having said active state; and said
communication nodes not having an active state being periodically
polled to discover wirelessly whether individual ones of the
plurality of communication nodes not previously being in said
active state have switched to said active state.
13. The wireless communication system according to claim 12,
wherein the time period between an individual one of said
communications nodes being polled increases exponentially in
response to a determination that the communication node is not in
said active state.
14. The wireless communication system according to claim 12,
wherein the payload bandwidth is a fixed payload bandwidth.
15. The wireless communication system according to claim 12,
wherein the payload bandwidth is a variable payload bandwidth.
16. The wireless communication system according to claim 12,
further comprising: wherein said communication nodes not having an
active state are interrogated dynamically to discover wirelessly
whether individual ones of the plurality of communication nodes not
previously being in said active state have switched to said active
state.
17. The wireless communication system according to claim 12,
wherein said communication nodes include at least one base station
and at least one remote terminal.
18. The wireless communication system according to claim 17,
wherein said at least one base station and said at least one remote
terminal are totally symmetrical relative to their operational
response.
19. The method of creating a wireless network infrastructure
according to claim 8, wherein the plurality of remote terminals and
base stations are individually and collectively called
communication nodes.
20. The method of creating a wireless network infrastructure
according to claim 8, wherein said step of discovering wirelessly
whether individual ones of the plurality of remote terminals and
base stations have active communication nodes includes:
periodically polling said plurality of remote terminals and base
stations.
21. The method of creating a wireless network infrastructure
according to claim 8, wherein said step of discovering wirelessly
whether individual ones of the plurality of remote terminals and
base stations have active communication nodes includes:
periodically interrogating said plurality of remote terminals and
base stations.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] Not Applicable
STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT
[0002] Not Applicable
REFERENCE TO A "MICROFICHE APPENDIX"
[0003] Not Applicable
BACKGROUND OF THE INVENTION
[0004] 1. Technical Field
[0005] The present invention relates in general to a method and
apparatus for wireless networking The invention more particularly
relates to wireless networking router systems for facilitating
communications via wireless transmission, in a more efficient and
reliable manner.
[0006] 2. Background Art
[0007] In industrial automation it becomes necessary to gather
information from several remote sites and use that information to
control operations at the remote sites. The data is gathered by
using various types of transducers that measure the physical
variables (such as temperature, revolutions per minute, etc.) and
convert them into electrical signals. Similarly the remote
equipment can be controlled by using mechanisms that convert
electrical signals into physical motion such as turning a valve or
operating a switch. A Remote Terminal Unit (RTU) is the interface
between these electrical signals and a communications medium.
Remote Terminal Units are also known as Logic Controllers and
Programmable Logic Controllers (PLC).
[0008] An RTU will convert the electrical signals into digital
representations and send them on a digital communications channel.
They will also receive digital data from the communications channel
and convert it into electrical signals for control of the equipment
at the site. Various communications protocols have been invented to
carry the data on various types of communications channels. The
most typical communications channel is a multidrop asynchronous
serial channel with a "master" station that controls access to the
channel and several "slave" stations that communicate, one at a
time, with the master station. An RTU would be one of the slave
stations and a central data processor would be the master. Several
communications protocols, such as MODBUS, have been invented to
handle this architecture. This type of protocol typically has the
data gathering program at the master computer site request data
from one slave station at a time and send data to one slave at a
time. The control program has complete control over the activity on
the communication channel.
[0009] Occasionally the situation exists where it is difficult to
place all of the RTUs on a wire channel. This most often happens
when the distances between the RTUs are too great for wire
connections. It also happens when there are physical or economic or
legal barriers to making the wire connections. In these cases a
wireless connection is needed. Since the operational
characteristics of radios are very different from those of wires,
the use of radio has exposed serious WEAKNESSES in the master/slave
model of communications. The MASTER/SLAVE communications model
assumes that there is a master that can control a single channel
that is also available to all of the slaves.
[0010] It is frequently impossible or at least very difficult, to
get a radio signal from a central master site to all of the slave
sites. Even when there is a place where a master station could be
put so that it can communicate with all of the slave stations, this
place is frequently not a good place to locate the data gathering
program (such as a mountain top.) The normal solution to these
problems involves a series of repeater stations, all still under
the control of the data gathering program. In essence extra radio
channels have been added, but are being used as if they were a part
of a single channel. This means that when one of the channels is
operational other channels must be still, even when the separate
channels do not conflict in any physical way with each other.
[0011] Internet Protocol has attempted to solve this problem by
removing the control of the networks and links from the application
(such as the data gathering program.) The application program sends
data to the address of the destination and is not concerned with
the processing and communication necessary to actually move the
data. All of the channels can be used to their capacity without
impacting the application program.
[0012] Recently some RTUs have begun to use the Internet Protocol
(IP) using ethernet communications. Using IP protocol allows having
a router on the same ethernet. An IP router, such as the one
marketed under the tradename "MAVRIC" by Metric Systems Corp., of
Carlsbad, Calif., can allow access to wireless transmission of the
data across a network of arbitrary topology, by interconnecting
ethernet or other inputs to the flexibility of the topology offered
by IP routing allows placement of radios wherever they are needed
for connectivity. The combination of an RTU using IP on an ethernet
channel and an IP router on the same ethernet channel solves all
the topological problems of using wireless communications for data
acquisition and control.
[0013] While such a system has proven highly successful, it would
be desirable to have a more bandwidth utilization efficient system
to operate at a variety of different bands.
SUMMARY OF THE INVENTION
[0014] The principal object of the present invention is to provide
a new and improved method and apparatus for facilitating wireless
networking.
[0015] Another object of the present invention is to provide such a
new and improved method and apparatus, which are more bandwidth
utilization efficient.
[0016] Briefly, the above and further objects of the invention are
realized by providing an improved technique for greatly improving
the band width utilization efficiency.
[0017] A method and apparatus for wireless networking employs a
wireless protocol module and a wireless device interface module for
controlling a remote terminal unit, whereby the modules integrate
the remote terminal unit software and wireless networking
application software.
BRIEF DESCRIPTION OF DRAWINGS
[0018] The above mentioned and other objects and features of this
invention and the manner of attaining them will become apparent,
and the invention itself will be best understood by reference to
the following description of the embodiment of the invention in
conjunction with the accompanying drawings, wherein:
[0019] FIG. 1-46, illustrate the method and apparatus of the
present invention.
BEST MODE FOR CARRYING OUT THE INVENTION
[0020] Referring now to the drawings, and more particularly to FIG.
1 thereof, there is shown a wireless internetworking Embedded
RTU/PLC system 10, which is constructed in accordance with the
present invention. The system 10 includes a sensor device input
modules 12 which respond to a variety of inputs such as an analog
or digital input 14, an asynchronous input 16, as well as other
possible inputs.
[0021] The system also includes a device protocol conversion module
21 which converts the instrumentation time discrete information
into an Internet Protocol that can be routed and serviced by the
embedded router.
[0022] The system 10 also includes a level 3 router module 18,
which internally routes data packets. The protocol conversion
module 21 converts the time discrete information into an Internet
Protocol (IP) base protocol. A wireless protocol module 22 creates
reliable links to multiple users within the radio range of each
transceiver. A wireless device interface module 23 provides
interface requirements for a given radio transceiver generally
indicated at 27.
[0023] The following is a table explaining the function of the
system modules:
[0024] Basic System Operation: TABLE-US-00001 Module Function
RTU/PLC Input device Converts Physical and virtual parameters
datagrams that are bi-directional transferred to the protocol
conversion module. Protocol Conversion module Converts the
Instrumentation time discrete information into an IP base protocol
that can be routed and serviced by the embedded IP router. Level 3
Internet protocol Internally routes the instrumentation data Router
packets to the appropriate wireless cell also maintains internal
network map of all connecting links. Wireless protocol Module This
module manages five functions required to create reliable links to
multiple users within the radio range of each attached transceiver:
Wireless Device Interface Module Provides the specific physical
interface requirements to support various types of wireless radios
and physical interfaces; i.e. RS- 232/ETHERNET/RS-530/ETC.
[0025] When the system 10 is shown and described as being
preferably useful in connection with control and monitor functions
in an industrial automation process, the system of the present
invention can also be used for a variety of different applications,
including, but no limited to, telephony, permanent virtual
circuits, lease lines, frame delays and others.
[0026] Each of the asynchronous ports can be user configurable
as
[0027] A wireless network gateway supporting a point-to-point or
multi-point portal.
[0028] An Asynchronous IP gateway e.g. a SLIP port
[0029] A dedicated point-to-point permanent virtual circuit-much
like a dedicated circuit.
The Basic System
[0030] Five (5) communication ports provisioned as four
asynchronous Comm ports and one 10BASE T Ethernet port.
[0031] COMM 1/J1 is a RS-232/RS-485 port
[0032] Comm2/J2 is a RS-232 port
[0033] Comm3/J3 is a RS-232 port
[0034] Comm4/J4 is a RS-232 port
[0035] J5 is a 10BASE T Ethernet port
[0036] J6 is the Input Power connector.
Initialization String
[0037] The initialization string file gives the system its overall
"personality". The lines in the file may appear in any order. All
characters in the file are converted to upper case before being
examined. The items, which may appear in this Section, are:
[0038] "NAME="THE value of this parameter is a string of characters
with no embedded blanks. Each system in a network may be named. The
name is displayed on the video display and is returned with the
status when a "MavWatch" remote status request is made. The name
has no effect on the operation of the system.
[0039] Example:
[0040] NAME=VISTA POINT
[0041] "ROUTE DISCOVERY="THE value of this parameter is "ON" or
"OFF" (default "OFF".) systems can exchange routing information
using the Internet Protocol RIP2. RIP2 causes each node in the
network to forward its routing table to all neighboring nodes (that
are within the same Autonomous System.) As the routing information
is propagated, each node eventually becomes aware of the routes to
all of the nodes in the network. Normally this function should be
enabled. However, when it is desired to save radio bandwidth by
having all routes entered into a static table, the route discovery
function can be turned off.
[0042] Example:
[0043] ROUTEDISCOVERY=ON
[0044] "DISCOVERY INTERVAL="The system periodically sends RIP2
updates to its neighbors in accordance with the IP RIP2
specification. The interval of that period can be set with this
parameter. The value of the parameter is the interval in minutes
(default 5.)
[0045] Example:
DISCOVERY INTERVAL=1
[0046] "ROUTER="THE value of this parameter is the IP addresses of
an external router entered as either dotted decimal (e.g.,
192.0.1.13) or as a hexadecimal number (e.g., COOOOL OD). If this
parameter is specified, all non-routable packets will be sent to
this address. Of course there must be a route to this address. In
most cases it will be discovered by RIP2; however, some systems
must have it specified as a static route.
[0047] Example:
[0048] ROUTER=192.0.1.13
[0049] "BOOTP="The value of this parameter is the IP address of a
BOOTP server entered as either dotted decimal (e.g., 192.0.1.13) or
as a hexadecimal number (e.g., C000010D). The system can act as a
BOOTP relay agent so that hosts on the Intranet can download their
operational values (including their IP address) from a BOOTP (or
related) server.
[0050] Example:
[0051] BOOTP=192.0.2.125 3.2
[0052] Devices Section of the Initialization String
[0053] Each line in the devices section file defines an IP address
and link type. The format of each line is:
[0054] Link NAME, LINK IP ADDRESS; or
[0055] Link Name, Link IP Address, X;
[0056] The final parameter "X", indicates that this is an external
link out of the Autonomous System of systems. No routing
information is automatically exchanged across this link. In the
absence of the final parameter, the link is internal and routing
information is exchanged, if route discovery is turned on (see
mavnet.ini.)
[0057] The Link IP Address is the IP address of this end of the
link (other ends of the same link have different IP addresses)
entered as either dotted decimal (e.g., 192.0.1.13) or as a
hexadecimal number (e.g., COOOOL OD).
[0058] The Link Name can have one of the following formats: "PFx",
the link uses the "Pathfinder" point to multi-point link level
protocol (half duplex links also use this protocol.) The x
character denotes the multi-point cell for this link; it may be any
character. Normally, the cells are labeled "PFA", PFB", "PFC" etc.
Having a "PFx" link demands that a PFX Section file also be present
in the same initialization string.
[0059] "SLPn", the link uses the IP SLIP framing on a full duplex
connection on COM port n. A "comm n Section file will be examined,
for additional parameters associated with the COM port. A slip n
Section file will be examined for additional parameters for the
SLIP port. The number of SLIP ports per system node is controlled
by the number of asynchronous RS-232 ports and corresponding free
interrupts.
System IP Routing
[0060] Each system 10 uses static or dynamic routing tables to
decide where to send a packet. The routing table is a list of all
the network segments that IP knows how to reach. If the network is
operating in the Automatic Route Discovery Mode, the routes are
being verified and updated as often as required, otherwise the
system uses fixed (static) routes. External links must have the
routes defined in the ROUTES. INI file.
[0061] A static route is a route that never changes and that you
must enter when manually configuring your IP addresses and system
Network. Static routes persist across power-downs, restarts, and
software reloads. They are used when the router for some reason
cannot determine the correct route dynamically, or to provide a
link to an external address. IP routing happens as follows:
[0062] 1. The system IP router receives the packet and reads the
32-bit destination address found within the packet header.
[0063] 2. If the packet is destined for this router, further
routing is not necessary and the IP hands the packet to the
appropriate internal software module. Packets in this category
include the following: [0064] Control packets for IP itself [0065]
Routing update packets [0066] Packets used for diagnostic
purposes
[0067] 3. If the packet is destined for a host on a
directly-connected network segment, IP matches the 32-bit
destination address with the appropriate physical address table. IP
then hands the packet to the appropriate lower-level protocol
module for transmission directly to the destination node.
[0068] 4. If the packet is destined for a host on a remote network
segment, IP uses the routing table to determine which router leads
to that network segment. Each entry in the routing table contains a
destination address and the IP address of the next hop router. If
IP matches the destination address in the table with the
destination contained in the packet the packet is handed to the
appropriate lower-level protocol module for transmission to that
next hop.
[0069] 5. If the packet has no entry for its IP address in the
routing table, the packet is routed to the default router. Default
routers are used to route the packets whose destination address is
not found in the routing table. This router is assumed to know the
location of the packets destination.
Static Route Configuration
[0070] Referring now to FIG. 2, there is shown a static route
configuration where the system 10 is responding to a network device
30, and in turn wirelessly communicates with like system units
31,32 and 33. The system units 31,32 and 33 are each similar to the
system 10.
Static Routes Example
[0071] Each line in the routes section of the initialization string
file has the following format:
[0072] Destination IP Address, IP Subnet Mask, Local Link (gateway)
IP Address;
[0073] Example: 192.12.13.45, FFFFFFFF, 192.34.24.100; or
[0074] The Destination IP Address, IP Subnet Mask, Local Link
(gateway) IP Address, Next Hop IP Address;
[0075] Example: 192.12.13.45, FFFFFFFF, 192.34.24.100,
201.22.90.10;
[0076] The Destination IP Address gives the address of the final
destination as contained in an IP packet, or a subnet address for
the final destination. The IP Subnet Mask gives the subnet mask for
the destination of the packet. The Local Link (gateway) IP address
is one of the IP addresses contained in the "devices. ini" file.
The binary intersection ("and") of the destination address of a
packet and the subnet mask is compared to the Destination IP
Address. If the two are equal, the packet is routed out of the
local link specified by the Local Link (gateway) IP Address. A
subnet mask is composed of leading (most significant bits) ones
followed by trailing zeroes. The same destination may be covered by
several different subnet masks. The packet is routed out the link
corresponding to the most specific (most one bits) subnet mask. The
Next Hop IP Address is used when route discovery is turned off. It
allows the pathfinder point to multi-point protocol to associate a
pathfinder link address with the destination IP address by finding
the link address of the next hop.
Slipn Section of the Initialization String
[0077] Each line of the Section defines a parameter of the SLIP
link. The parameters are defined as follows
[0078] "MTU=mtu" "mtu" is a decimal number giving the Maximum
Transmission Unit on the SLIP link. The default is 584 bytes.
[0079] "TTO=TTP" "TTP" is a decimal number giving the transmission
timeout interval in milliseconds. The default is 500.
[0080] "KEEP_ALIVE_SIZE=keepAliveSize" "keepAliveSize" is a decimal
number that sets the size of the keep alive link level data packets
that are interchanged on internal SLIP links. The default is set by
the link protocol. Specifying a value less than the default results
in the default being used. This parameter is useful for those
radios that do not immediately transmit data but store it up until
a specific buffer size is filled. By setting the keep alive size
parameter, the link level packet can be forced out immediately.
Commn Section of the Initialization String
[0081] This Section sets the parameters for serial port "n". Each
line sets a single parameter. The parameters are as follows:
[0082] "BAUD=baud" "baud" is the number of bits per second
transmitted and received by the serial port. It is a decimal
number. Any number entered will be converted to the nearest baud
divisor. The baud divisor is divided into 115200 to form the actual
bits per second used by the serial port. The MAVRIC baud rate
should be set to equal the DTE's baud rate.
[0083] "PARITY=parity" "parity" may have the values "NONE", "ODD",
"EVEN", "MARK", and "SPACE". The default is "NONE". Please note
this parameter is set as the same as the DTE's.
[0084] "DATA BITS=dataBits" "dataBits" is a decimal number no less
than 5 nor larger than 8. The default is 8, entries outside the
permitted range result in the default being used.
[0085] "STOP BITS=stopBits" "stopBits" is either "1" or "2".
Numbers larger than 1 result in two stop bits; numbers smaller
result in one stop bit. The default is one stop bit.
[0086] "XON=xon" "xon" is EITHER"0"OR"I". The value"1" turns on
XON/XOFF flow control. The default is "0";
CONFIGURATION EXAMPLES
Example 1
[0087] Set COMM1 port to 38.4 kbps and set for software (XON/XOFF)
flow control.
[0088] Section name: COMM1
[0089] BAUD=38400
[0090] XON=1
[0091] Network Watch Tool
[0092] A network tool called "network watch," is designed to test
system Wireless Networks. It allows the user to probe network
connectivity from any External SLIP port (usually Port 1). It
displays packet statistics such as Round Trip Time, Success Rate,
Packets Send/Received, and Probe Intervals.
[0093] When the network watch tool is started, the screen shown in
FIG. 6 is presented.
[0094] At this point a user may want to create his or her own test
files, or open a stored test file. Included on the floppy disk
labeled as NetWatch is a test file PROJECT NAME. NET designed by
Metric Systems Corporation for the user.
Creating a Test File
[0095] If you wish to create a new NET file, click on the Define
button or choose Define under Tools menu. The pop-up Node
Definition Action window presents user three choices: New, Modify,
and Done. NEW allows user to create a new Node in the network. The
screen shown in FIG. 7 appears.
[0096] Enter the name of the node and a brief description in the
appropriate boxes. Each node may have several devices with
different IP Addresses attached to it. Use the New Link button to
add as many devices as necessary. The menu shown in FIG. 8 will
pop-up.
[0097] Choose a link type and enter the address in the appropriate
boxes. As shown in the example above, the link is defined as SLIP
with an IP Address 192.29.2.2. Check all information carefully and
click OK to save the link. Continue adding links until all links on
the node are entered, then click OK button in the Define New Node
window. This brings you back to the Node Definition Action window.
Choose DONE if all of the nodes are defined or NEW to continue
adding new nodes.
[0098] The final step in setting-up the net watch tool for your
network, is to select the recorded links you want to test. In the
displayed window, click on Check Integrity Probe button or choose
Integrity Probe under the Tools menu. The Integrity Probe Control
window pops-up (FIG. 9).
[0099] Click on the Add button and choose which links you want to
test. If all the links require testing, choose Select All Addresses
and click Done button. Now go back to the net watch tool window and
save this test file under an appropriate name.
Open Stored Test File
[0100] To open a saved NET file, choose Open under File menu, or
click on the Open File icon. If the file is loaded properly, a new
name should be in the top box of the net watch tool window.
Using the Net Watch Tool
[0101] Once the test file is loaded, go to the integrity probe
window (click on). Before starting the test, set the probe
interval. This determines how often probe packets are sent. Probe
Interval Settings are in milliseconds, e.g.: 1000 ms equals to 1
sec. To start the test press Start button in the Integrity Probe
window. The net watch tool starts to send packets to different
stations and log returned packets.
[0102] Information can be obtained from the window shown in FIG.
10.
[0103] Name, address, and description of station the probe has just
sent to (Station 3, 192.3.2.1, CNX3), statistics about round trip
time (110 ms), number of packets sent and received (4/4).
[0104] To find more details, press Find button, which leads the
user in the window of FIG. 11.
[0105] Here the user can monitor status of all stations. To go back
to the Integrity Probe window, click on the Done button. To see
more details on one of the stations, highlight the station you want
to explore and click on the Details button. The window of FIG. 12
will pop-up.
[0106] This is the same information as can be seen on the Integrity
Probe window, except the information doesn't change every time a
new probe is send out. To go back to the previous window, click the
OK button.
Glossary
[0107] The terms listed below will be found in error-messages and
system operations description descriptions.
[0108] Ack: The transmission character used to indicate positive
acknowledgment of a transmitted datagram message packet.
[0109] Automatic Route Discovery: An option that enables the
control program to discover all available routes throughout the
network automatically, instead of using static routes table.
[0110] Autonomous System: A network which is governed by automatic
route discovery. An Autonomous System has all internal links and
all routes use the same subnet mask.
[0111] Client Terminal: Any digital data source or receiver such as
computers, SCADA, dumb terminals, Automatic Teller Machines, Credit
card terminals, etc.
[0112] Client Protocol: A set of specifications including formats,
timing, and rules that govern the functional operations of a
digital data device in order to guarantee the accurate and reliable
transmission of data between the client terminal and the system
station.
[0113] External SLIP: a link that is outside an autonomous system,
such as a network console.
[0114] Hub Station: A system configured to support system
Multi-Point topologies.
[0115] Internal SLIP: a link that is within an autonomous
network.
[0116] SYSTEM: A family Networking Equipment & Software
solutions for building wide area, multi-point, multi-access
wireless data networks.
[0117] Naks: A transmission PDU sent to the sender, indicating that
the decoded message packet has errors).
[0118] Primary Station: The system Station responsible for
interrogating each secondary: outbound.
[0119] Null Modem Connection: A connecting cable used for direct
serial communication between two stations.
[0120] PATHFINDER 9600: A synthesized UHF integrated 9600-baud
transceiver used for wireless transmission of data. The PATHFINDER
9600 supports the frequency range of 38 to 512 MHz in six
bands.
[0121] Pathwork: A set of software applications used as an aid in
designing and evaluating the performance of a system circuits Relay
Station: A system Station which receives, re-addresses and
re-transmits the packets, to another system secondary or primary
station, thus extending coverage.
[0122] Secondary Station: A system Remote Station working under the
control of the primary.
[0123] Secondary Access Node: Same as system Secondary Station.
[0124] System Multi-Point Cell: Network in which each secondary
station is linked to a primary station, via a rotating electronic
token, which interrogates and notifies each station j data.
[0125] 4.8.6 Summary
[0126] The net watch tool can be used to test entire or portions of
the network for any period of time. The user can turn on an audio
annunciator in the Integrity Probe window ( ) and minimize the
window. Every time a packet fails to return within the preset time
window, a ping will be heard. If a series of pings occurs, the user
should restore the Integrity Probe window and go to the detail
display screen to examine the connectivity to each remote node.
Overview of Router Functions
[0127] An Internet Protocol (IP) router is considered to contain
three distinct sets of operations. The first set is the physical
interface to the communications hardware. The host computer itself
may be thought of as a physical interface; it communicates with the
application processes.
[0128] The second set is the link handlers that prepare the
Internet packet for transmission over the physical interfaces and
receive the packet over the physical interfaces. The link handlers
must also handle the configuration of the physical interface and
any negotiations between the various other link handlers that share
a physical interface. The set of operations that send and receive
packets from applications executing on the host computer may be
considered a link handler also; it is the host link. The third set
is the routing functions that decide which of the link handlers to
use for a particular packet based upon its destination address. One
of the link handlers available to the routing operations is the
host link. All IP packet arrive at the routing functions through
one of the links and most packets depart the routing functions
through one of the links; it can happen that an arriving packet is
not re-routed but simply discarded
Description of the Routing Functions
[0129] The routing functions receive packets from the links and
send the packets to other links. The routing functions obey the IP
subnetting rules. The host machine is considered a link with its
own set of addresses both of its native link addresses and of its
multicast addresses.
Description of the Link Handlers
[0130] A link handler moves data from the current station to one or
more stations that may share the link. Links have several queues
for holding data. The queues are prioritized by the IP packet Type
Of Service (TOS) field. By maintaining separate data structures for
different TOS groups, the link is able to send packets with a
Minimize Delay TOS before other packets.
Host Link
[0131] The host link is responsible for sending data two and from
the applications on the host processor. The normal model for such
host communications is a "socket". The host link is also
responsible for the Internet Control Message Protocol
processing.
Serial Radio Links--Point to Multipoint
[0132] A point to multipoint link is a link in which several
stations communicate over a single channel. In order to control
access to this channel, one station is designated as the primary
(master) and the other stations are designated as secondary
(slaves.) The systems point to multipoint link comprises several
parallel channels.
[0133] Parallel channels must all have the same set of stations.
Point to Multipoint processing is accomplished by several
cooperating event driven finite state automata (each referred to as
a process.) A description of each of these processes follows.
[0134] The following description refers to the link process. The
link process is responsible for starting up a transmit process for
each channel. Operationally the link process receives packets from
the routing functions and distributes them among the operational
channels. The link process does not control access to the various
channels. That function is controlled by each channel
independently.
Creation and Initialization
[0135] The creation function initializes the link parameters and
creates a Radio Transmit Process for each channel. The
initialization function initializes each of the Radio Transmit
Processes; it then adds the link and its IP address to the routing
database and schedules the Outgoing Packet Handler for
dispatching.
Outgoing Packet Handler
[0136] The outgoing packet handling state distributes the packets
to one of the working channels. There is little for the state to do
on a secondary station except to insure that the input queue does
not overflow and to check the state of all the channels, if all of
them should quit working then route discovery is started (where
available) to find replacement routes. The Radio transmit process
for the secondary may simply dequeue a packet from the link queue
when it has been selected for transmission.
[0137] For a primary station, on the other hand, the processing is
more involved since a transmission channel must be selected. In
such a way that the channels are well used. Since channels may not
operate at the same speed, it is not suitable to use each channel
equally. Instead, the outgoing packet handler tries to maintain the
queues to the various working radio transmission processes at equal
length. If there are no working channels then route discovery is
started (where available) to find replacement routes.
Radio Transmit Process
[0138] The Radio Transmit process controls transmission of frames
on a single channel. This process comprises a multitude of states.
The states are divided into two parts one for a primary station and
the other for a secondary station. A primary station state never
schedules a secondary station state and vice versa.
[0139] There are two kinds of frames, a link frame and an IP frame.
Both kinds of frame use SLIP framing and the first character of the
frame is used to discriminate between IP and link frames. The link
frames are really channel frames since the data they pass between
the primary and secondary are used to control the channel. Link
frames are used to:
[0140] Control secondary access to the channel.
[0141] Control bandwidth allocation to the secondaries.
[0142] Control inclusion of new stations into the cell.
[0143] Mark the end of channel usage (end of transmission.)
Creation and Initialization
[0144] The Radio Transmit Processes are created and initialized by
the Point to Multipoint Link Process.
[0145] At creation time the Radio Transmit process initializes its
parameters. At initialization time it creates the serial device
handier for its channel and then creates event handlers for the
transmit, modem change, and error interrupts and installs them into
the serial device driver.
[0146] If the station is a primary the initialization either
schedules the state that waits for the Data Set Ready (DSR) signal
from the modem or, if DSR is present, schedules the state that
begins the polling. If the station is a secondary, the
initialization schedules the state that waits for the secondary to
be selected for transmission by the primary.
Primary Wait for DSR
[0147] This state waits for the radio modem to present DSR. When
that event occurs, the state which does the polling is scheduled.
If the modem allows full duplex (simultaneous transmission and
reception), the Request To Send (RTS) signal is presented to the
modem.
Primary Poll
[0148] Each secondary station has associated with it an earliest
time of the next poll. When the real-time clock exceeds that value,
the station becomes eligible for receiving an invitation to
transmit (a poll.) Each station also has a polling interval, which
is a number that when added to the current value of the real-time
clock yields the earliest time of the next poll. Every time a
station is polled, its polling interval is multiplied by a number
greater than one and has a small constant added. When the receiver
process detects that a secondary station has responded to the poll,
it sets the polling interval to zero and resets the earliest time
of the next poll to the value of the real-time clock, thus making
the station eligible for an immediate poll. This algorithm allows
non responding secondary stations to be quickly removed from the
polling, but also makes the penalty for a single missed poll
(perhaps due to radio interference) slight. A parameter of the link
determines the maximum interval between polls of a non-responding
station.
[0149] The primary can use the recent response patterns of the
secondaries to allocate bandwidth among them by including a maximum
packet count in the invitation to transmit.
[0150] The primary can offer a chance for a secondary that is not
included in the polling to become included by giving a invitation
to register, in which any secondary may transmit a registration
link frame. If any such frame is received by the receive process,
it can be acknowledged by the primary and the station included in
the polling. Of course this invitation to register may be answered
by more than one secondary, in which case the responses would be
scrambled at the primary and a frame specifying that no
registration occurred would be sent. The secondaries would then
have to back off and wait for some random number of registration
invitations to pass before re-attempting a response.
[0151] The primary selects a secondary for polling if no secondary
is currently using the channel and if there is a secondary which
has an earliest time of next poll prior to the current value of the
real-time clock.
[0152] If there are no packets for the primary to send and if none
of the secondaries is currently eligible for a poll, the Primary
Poll state reschedules itself and exits back to the dispatcher. If,
however, the primary does have some frames to transmit, it
schedules either the state that sends the frames (Primary Send), if
it has a full duplex channel, or it schedules the state that waits
for the currently selected secondary to clear the channel (Primary
Wait For No DCD.)
Primary Wait for no DCD
[0153] This state waits until the Data Carrier Detect (DCD) signal
from the modem is dropped. The absence of this signal means that no
secondary is using the channel. When the absence of DCD is
detected, RTS is presented to the modem to begin transmission by
this station. The state of the Clear To Send (CTS) signal of the
modem determines whether a state to wait for CTS (Primary Wait For
CTS) must be scheduled or whether the state that performs the send
can begin immediately (Primary Send.)
Primary Wait for CTS
[0154] This state waits for the modem to present the Clear To Send
(CTS) signal. When that signal is detected, this state schedules
the state that performs the send (Primary Send.) If CTS is not
detected after a reasonable time, the entire primary state
machinery is restarted at Primary Wait For DSR.
Primary Send
[0155] This state sends (actually it queues frames to the device
driver) outgoing packets that may have been queued to it by the
Point to Multipoint Link Process' Outgoing Packet Handler state up
to its maximum share of the channel bandwidth. If a secondary has
not been selected, it then sends and end of transmission link
frame. If a secondary has been selected, it sends an invitation to
transmit frame to the secondary and increases the polling interval
of the secondary before setting its earliest time of next poll. It
then schedules a state to wait for the transmission to complete
(Primary Wait For Send Complete) and exits to the dispatcher.
Primary Wait Send Complete
[0156] This state waits until all of the frames that have been
queued to the device driver have been sent before rescheduling the
Primary Poll state. The big problem with this state is that
interrupts may not be generated by the transmitter hardware and so
the transmission may need to be nudged into activity again. This
state reschedules itself with a fairly short timeout while watching
the state of the transmitter. It appears to have stopped it is
nudged in activity. After a given number of nudges the transmission
is abandoned and Primary Poll is scheduled anyway.
Secondary Wait for Selection
[0157] This state waits until it has received notification from the
Secondary Receive process that transmission is allowed. If the
radio is full duplex it schedules the Secondary Send state.
Otherwise it must schedule the state that waits for the primary to
clear the channel before starting transmission Secondary Wait For
No DCD.)
Secondary Wait for no DCD
[0158] This state waits for the primary to complete transmission
and release the channel. Channel release is detected when the modem
stops presenting the Data Carrier Detect signal. When the loss of
the signal is detected, this state raises Request to Send (RTS) to
begin its own transmission. It checks to determine whether the
modem is presenting Clear To Send (CTS). If so, sending can begin
immediately and the state Secondary Send is scheduled. If not, then
the secondary must wait for the CTS signal to be presented by the
modem so the state Secondary Wait For CTS is scheduled.
Secondary Wait for CTS
[0159] This state waits for the modem to present the Clear To Send
(CTS) signal. When the signal is detected, the state that performs
the send, Secondary Send, is scheduled. If CTS is not presented
within a reasonable time, the attempt to send is abandoned and the
initial state, Secondary Wait For Selection is scheduled.
Secondary Send
[0160] This state retrieves IP packets directly from the Link
process queue and queues them to the device handler queue. It
limits the number of packets it queues to the device handler based
on the packet count contained in the invitation to transmit from
the primary. Each packet is checked to insure that it has a good
frame check sequence and that its time to live has not been
exceeded and that it did not arrive on this link (that means that
it was misdirected by the primary). If any of these conditions hold
the packet is discarded. After all of the outbound IP packets have
been queued to the device handler, an end of transmission link
frame is queued to the device handler. The state Secondary Wait For
Send Complete is scheduled with a timeout and this state exits to
the dispatcher.
Secondary Wait Send Complete
[0161] The big problem solved by this state is that the
transmission hardware occasionally drops interrupts so that the
sending process stops prematurely. This state watches over the
transmission process by rescheduling itself at short intervals and
checking on the progress. If the transmitter has stopped
prematurely it is nudged back into action. If too many nudges are
required the transmission is abandoned. After the transmission
successfully completes or is abandoned, the initial state,
Secondary Wait For Selection, is scheduled and this state exits
back to the dispatcher.
Primary Receiver Process
[0162] The Primary Receive Process is responsible for receiving
frames at a primary station.
Creation and Initialization
[0163] Both the creation and initialization functions are called by
the Radio Transmit Process. The creation function initializes the
parameters. The Initialization function creates and initializes the
receive event handler and then inserts the event handler into the
serial device driver. It then schedules the main state, Process,
and blocks the process on reception of a frame before returning the
caller.
Process
[0164] This state processes a single received frame. If more frames
are available it reschedules itself with no block. If no more
frames are available it reschedules itself with a block on the
reception of a frame.
[0165] If the received frame is a link frame it must notify the
Radio Transmit process of the frame. If the frame is an IP packet,
the state must determine whether the packet has a multicast
destination address and if it does, copy it and enqueue it onto the
Link process' outgoing packet queue. The original packet, multicast
or not, is enqueued to the router.
Secondary Receive Process
[0166] The Secondary Receive process is responsible for receiving
frames from the primary and then acting upon the frames that are
destined to this station.
Creation and Initialization
[0167] Both the creation and initialization functions are called by
the Radio Transmit Process. The creation function initializes the
parameters. The Initialization function creates and initializes the
receive event handler and then inserts the event handler into the
serial device driver. It then schedules the initial state, Not
Selected, and blocks the process on reception of a frame before
returning the caller.
Not Selected
[0168] This state receives frames from the primary waiting for a
frame that selects this station for reception or transmission when
such a frame is received it either notifies the Radio Transmit task
or schedules the state Selected.
Selected
[0169] This state receives frames destined for this station. It
must examine link frames to determine when the primary selects
another station. When this occurs, it schedules the state Not
Selected, blocks waiting for a new frame and exits to the
dispatcher. It must also examine the IP source address of the
packet to insure that it has not received a packet destined from
this station to another station in the cell. This state only
receives one frame before yielding control to the dispatcher. If
there are more frames available it reschedules itself. If there are
no more frames available it reschedules itself and blocks waiting
for a received frame.
SLIP
[0170] Serial Line Internet Protocol (SLIP) is an unofficial
standard that is very frequently used in the internet world to move
Internet Packets over serial lines. It defines a simple framing
sequence and escape sequences to allow binary data to be sent with
no danger of a data character being mistaken for a framing
character. Metric Systems has added non-IP link frames to SLIP to
allow one side of the link to exchange link data with the other
side. Currently the only data exchanged is an occasional keep-alive
frame when no other data is flowing across the link. The keep-alive
frame prevents an internal link (an internal link is one that links
two Metric Systems routers) from being declared down. When an
internal link goes down, route discovery is started (if available)
to find alternate paths. Link frames are never sent on external
links to equipment other than that of Metric Systems.
SLIP Link Process
[0171] The SLIP link process is responsible for setting up both of
the processes necessary for SLIP communications and also for
informing the router of the links presence and also for creating
the serial device handler. In addition there is within the link
process a finite state automaton for handling the transmission of
packets and link frames.
Creation and Initialization
[0172] The creation function initializes parameters and creates a
SLIP Receiver process. The initialization function creates and
initializes event handlers for transmission events, modem events,
and error events. It creates and initializes a serial device
handler and sets the event handlers into the serial device driver.
It initializes the SLIP Receiver process. It adds this link to the
router's database. It then schedules the Startup state and returns
to the caller.
Start Up
[0173] This state raises the Data Terminal Ready signal to the
modem and then schedules the main state, Process, before exiting to
the dispatcher.
Process
[0174] This state constantly re-schedules itself blocking on a time
out and also packets being available from the router. The restart
on timeout allow the state to send a link frame as a keep-alive if
no other frames were sent and the link is internal. On every entry
this state determines whether the link is up or down by analyzing
the receiver activity and the state of the modem's Data Set Ready
(DSR) signal. The router and its route daemon are notified of any
change. If IP packets are available for transmission, one of them
is checked and sent if its time to live has not expired. If there
is not enough memory to safely operate, the Link queue is reduced
to half its former size while preferably preserving routing packets
and packets with immediate delivery type of service.
SLIP Receiver Process
[0175] The SLIP Receiver process is responsible for receiving
frames from the other side of the link.
Creation and Initialization
[0176] The creation function initializes the parameters. The
initialization function creates and initializes a receive event
handler and sets it into the serial device handler. It then
schedules the main state, Process, and returns to the caller.
Process
[0177] This state constantly reschedules itself with a wait. If no
frames are received within several wait intervals it notifies the
SLIP Link process of the lack of activity. If the frame is a link
frame the SLIP Link process is notified of activity on the line. If
the frame is an IP packet its header frame check sequence is
examined and if it is good, the packet is queued to the router and
the link is notified of activity. If it is not good the packet is
discarded.
[0178] The serial device handlers control the hardware that
communicates with the radios.
[0179] While particular embodiments of the present invention have
been disclosed, it is to be understood that various different
modifications are possible and are contemplated within the true
spirit and scope of the appended claims. There is no intention,
therefore, of limitations to the exact abstract or disclosure
herein presented.
* * * * *