Patent Description:
Networking in contested environments is different than networking in permissive environments. One of the major differences is that there can be a much larger variation in the raw communication link rates between permissive and contested situations. For example, platforms in a permissive environment may be able to send over <NUM> Mbps between neighbors, while those in significant jamming conditions may be only able to send several kbps in the same network.

Traditional network management protocols typically make simplifying assumptions with regards to the physical layer, and require a certain minimum amount of bandwidth for network overhead, for example <NUM> kbps. When the physical layer conditions are good, and the link data rates are <NUM> Mbps, this results in <NUM>% overhead. However, when the link conditions degrade to <NUM> kbps, the network management overhead rises to <NUM>% of the available bandwidth leaving nothing for the intended user data traffic. <CIT> discloses a communication node disposed on a packet transfer path through which data packets flow between a transmitter and a receiver according to a specific protocol under which flow control and congestion control using a window size are performed. <CIT> describes a system and method for adative frame size management in a wireless multihop network. The publication "<NPL>, describes four routing algorithms for so-called Mobile ad-hoc networks (manets).

One embodiment illustrated herein includes a method which includes transmitting data on a communication link, in an environment. A network control overhead portion of the data is allocated to network control overhead data packets for controlling how data is transmitted on the communication link. Such overhead data packets may affect, for example, how links, routes, and/or network topologies are managed. A user data portion of the data is allocated to user data packets for transmitting data between users of nodes on the communication link. A degradation in data capacity of the communication link is identified. As a result, a change is made in the network control overhead portion of the data, changing size of network control overhead data packets to make the network control overhead data packets smaller to attempt to maintain a predetermined proportion factor for the network control overhead portion as compared to the user data portion. The network control overhead portion of the data is transmitted according to the change.

Embodiments illustrated herein are able to detect when there are changes to the network environment resulting in changes to the proportion of user data to overhead data, and can as a result adjust the proportion of overhead data as compared to user data to attempt to maintain some predetermined proportion of user data to overhead data. Overhead data is data such as network control data that controls how user data is sent between nodes in the network. Such overhead data packets may affect, for example, how links, routes, or network topologies are managed. User data is the data sent between users of various nodes in the network. Thus, network control data controls how the user data is sent in the network.

As noted previously, often network control data is a predetermined set of data that is sent without regard to bit rates available or possible in a networking environment. This can result in the overhead data using up all of the available data bandwidth in a contested environment such that no user data is able to be transmitted. Thus, embodiments illustrated herein can determine characteristics of the user environment, and can adjust overhead data to ensure that bandwidth continues to exist for user data. This can be accomplished in a number of different fashions.

According to the invention, packets containing overhead data can be made smaller. This can be accomplished by including less information in the overhead data packets. For example, data included in the overhead data packets can be have less precision when being transmitted in a contested environment as compared to a more permissive environment. Alternatively or additionally, embodiments may exclude data in overhead data packets that can be deduced from other data. For example, there may be data included in overhead data that defines certain communication characteristics for various nodes in the network. In some embodiments, overhead data may be transmitted for less than all of the nodes in the network when the overhead data for certain nodes can be used to deduce or construct overhead data for other nodes. Thus, in some embodiments, overhead data may be sent for some nodes, and that overhead data may be used to deduce overhead data for other nodes. This would reduce the amount of data necessary to be sent as overhead data. Note that this may require additional computation at various nodes in the network, and thus if there is no need to reduce the amount of overhead data, then the overhead data could be transmitted for all of the appropriate nodes in the network.

With respect to precision, in some embodiments less precise information can be sent as overhead data without significantly compromising the overall precision of the system. In particular, less precision can be used for the various nodes, but combinations of less precise data can be used to deduce or compute more precise data thus reducing the effects of sending lower precision data. However, it should also be noted that in some embodiments, the network may simply have to accommodate less precise data used by nodes in a more contested network environment.

An example of a parameter that may be less precise in overhead data is signal-to-noise (SNR) ratio data. In particular, when nodes in the network receive data from other nodes, those receiving nodes will often respond with a message indicating the signal-to-noise ratio of the data received by the receiving node. Thus, the nodes sending the user data can adjust data rates, power, or other factors to cause data to be sent such that is received at a certain signal-to-noise ratio by a receiving node.

Embodiments illustrated herein implement a scalable network overhead where the network is designed to accommodate this high dynamic range of available bandwidth, while maintaining a low total overhead regardless of the raw data rate. To accomplish this, the network protocols are designed to have scalable overhead. When link rates are reduced, correspondingly lower overhead is implemented in the network.

Embodiments may implement an improved network system that ensures that the network overhead scales to an acceptable level in various different conditions, including conditions where communications are difficult, to keep the network operational and maximize useable bandwidth, despite a physical layer that can vary by many orders of magnitude in its supported data rate.

Referring now to <FIG>, an example is illustrated. <FIG> illustrates a network <NUM>. In the example illustrated in <FIG>, the network <NUM> is a mesh network including a plurality of network nodes illustrated generally at <NUM> with a particular node illustrated at <NUM>-<NUM>. The nodes <NUM> in the mesh network <NUM> include elements to allow the nodes <NUM> to communicate with one another. For example, the nodes <NUM> may include transmitter hardware and/or receiver hardware, as well as potentially various firmware and software. Transmitter hardware may include elements such as filters, amplifiers, modulators, power supplies, antennas, transmission lines, etc. Similarly, receiving hardware in the nodes <NUM> may include antennas for receiving signals, filters, demodulators, amplifiers, transmission lines, and various other hardware and/or other components for receiving data, demodulating the data, and recovering data transmitted from various nodes.

As illustrated in <FIG>, nodes transmit various different kinds of data packets. For example, the node <NUM>-<NUM> is shown as transmitting user data packets generally illustrated at <NUM> and overhead packets generally illustrated at <NUM>. While only the node <NUM>-<NUM> is shown transmitting these various packets, it should be appreciated that packets may be transmitted by any node in the network <NUM> including appropriate hardware and/or other components to transmit data from the node. Additionally, it should be appreciated that the node <NUM>-<NUM> may be configured to receive data from other nodes in the network <NUM> by virtue of the node <NUM>-<NUM> having various elements of receiver hardware and/or other components.

As noted previously, user data packets <NUM> include data to be transmitted between users on the various nodes <NUM> of the network <NUM>. For example, applications on the various nodes <NUM> may send data to other applications on other nodes in the network <NUM>.

To ensure proper network functionality, the various nodes <NUM> in the network <NUM> also transmit overhead packets <NUM>. The overhead packets <NUM> include information usable to facilitate transmitting the user data packets <NUM>. For example, an overhead packet <NUM> sent by a node may include information such as power and rate control data. For example, a node may send information describing the signal-to-noise ratio for data received by the node. This information can be used to determine whether data should be transmitted with different power and/or different data rates. For example, if the node <NUM>-<NUM> receives a signal from another node in the network <NUM>, the node <NUM>-<NUM> can send an overhead packet indicating that the data was received with a particular signal-to-noise ratio. As there is a target signal-to-noise ratio at which data should be received by the node <NUM>-<NUM>, if the data is not received at or near the target rate, then the transmitting node may need to adjust the power and/or data rate at which user data packets are sent to the node <NUM>-<NUM>. In particular, increasing the power at which user data packets are sent will increase the signal-to-noise ratio of user data packets received by the node <NUM>-<NUM>. Conversely, if the signal-to-noise ratio exceeds a target signal-to-noise ratio, the transmitting node may wish to reduce the power at which user data packets are sent to the node <NUM>-<NUM>. In particular, it is often desirable that power be limited in the network <NUM> to prevent communications by nodes <NUM> in the network from being detected by adversarial entities in an environment in which the network <NUM> is being implemented. The signals can be sent with sufficient power to allow an adversarial entity to detect the signals such that the adversarial entity may be able to detect one or more of: presence of signals, location of entities sending signals, and potentially even be able to intercept the data in the signals. In an electronic warfare environment this can be deadly to users at the various nodes <NUM> of the network <NUM>. Thus, if there is an opportunity to reduce the power of data being transmitted between the nodes <NUM> and the network <NUM>, this opportunity may be exploited to maintain covertness of the various nodes in the network <NUM>.

With respect to rate control, if the signal-to-noise ratio indicated in the overhead packets from the node <NUM>-<NUM> exceeds a target to signal-to-noise ratio, then it is possible to increase the data rate of communications to the node <NUM>-<NUM> such that additional data can be transmitted between the various nodes in the network <NUM> without causing the signal-to-noise ratio to be below some threshold preventing communications from being effectively transmitted. Conversely, if the signal-to-noise ratio is below some predetermined threshold, this information can be provided in the overhead packets <NUM> such that the various nodes in the network <NUM> can reduce data rates for user data packets <NUM> being sent to the node <NUM>-<NUM>, resulting in an increased to signal-to-noise ratio to allow the communications to be recovered by the node <NUM>-<NUM>.

Note that typically the power and rate control information provided in overhead packets <NUM> is often provided on a per node basis. Thus, for example, if the node <NUM>-<NUM> receives a user data packet from a node <NUM>-<NUM> the node <NUM>-<NUM> will send an overhead packet to the node <NUM>-<NUM> indicating the signal-to-noise ratio for the packet received by the node <NUM>-<NUM>. The node <NUM>-<NUM> can adjust how user data packets <NUM> are sent to the node <NUM>-<NUM> as a result of receiving an overhead packet indicating the signal-to-noise ratio for packets sent from the node <NUM>-<NUM> to the node <NUM>-<NUM>.

Another type of overhead data that can be sent in the overhead packets <NUM> is topology messages. Topology messages include information describing the various nodes in the network <NUM>, and can include information such as location of the nodes, transmitting capabilities of the nodes, receiving capabilities of the nodes, priority levels for the nodes, etc..

Other network control data that may be included in overhead packets <NUM> includes routing control and/or data forwarding control. For example, overhead packets can indicate how user data packets <NUM> should be treated by various nodes in the network <NUM>. For example, an overhead packet may indicate that a particular node should always forward user data packets a particular number of times. For example, various user data packets may have a particular time to live, where that time to live is based on a number of node hops in the network <NUM>. Thus, for example a particular user data packet may have a time to live of '<NUM>', which would allow the user data packet to be forwarded three times by nodes in the network <NUM>. The user data packet <NUM> could have a flag in the packet indicating the number of times that it had been forwarded. The number of times that packets are to be forwarded could be included in overhead packets transmitted to the various nodes <NUM> in the network <NUM> which could then use the counter information in the user data packets <NUM> to ensure that packets are forwarded appropriately.

As noted previously, the network <NUM> may experience interference which reduces the amount of total data that can be transmitted between the various nodes in the network <NUM>. This is illustrated in <FIG> by the presence of an interferer <NUM> which introduces interference <NUM> into the network <NUM>. Often, the interferer is an adversary attempting to jam communication signals. For example, the interference <NUM> may increase the noise floor in the network <NUM> which reduces the amount of network data that can be sent between the various nodes <NUM> and the network <NUM>. Indeed, as discussed above, the network bandwidth may be degraded so severely, that ordinarily only overhead packets <NUM> would be able to be transmitted in the network <NUM>. That is, previous systems caused the overhead packets <NUM> to be transmitted without regard to external conditions existing in the network <NUM>. Rather, the overhead packets <NUM> would be sent without feedback. In contrast, embodiments illustrated herein can detect the additional interference <NUM> and reduce the amount of data used for the overhead packets <NUM> to allow user data packets <NUM> to be transmitted between the nodes <NUM> in the network <NUM>.

For example, in some embodiments, nodes in the network <NUM> may be able to detect an increase in the noise floor caused by the introduction of interference <NUM> into the network <NUM>. If a particular node and/or set of nodes detects this additional interference <NUM>, the nodes can coordinate to determine that reduced amounts of data should be used in transmitting the overhead packets <NUM>.

Alternatively or additionally, a transmitting node will always know the data rate at which it is operating. Consequently the overhead ratio is known before transmission. The transmitting node can automatically reduce the amount of data used for overhead packets <NUM>.

Alternatively or additionally, some embodiments may allow nodes in the network <NUM> to act independently when detecting increased interference <NUM> (which is usually manifested as a reduced SNR measurement, where the SNR is the signal to noise such that a node detecting increased interference can automatically reduce the amount of data used for overhead packets <NUM>.

Alternatively or additionally, nodes in the network <NUM> may be able to determine the percentage of data received in user data packets as compared to the amount of data received in overhead packets <NUM>. If the amount of data in the user data packets <NUM> goes below some predetermined threshold as compared to the data in the overhead packets <NUM>, those nodes may determine that an inordinate amount of data is being used for overhead packets and can therefore cause a reduction in the amount of data used for the overhead packets <NUM>. As with embodiments described above, this may be implemented on a node by node basis where given nodes self-determine to reduce data in overhead packets and/or alternatively the nodes <NUM> in the network <NUM> may coordinate with one another to work as a group to reduce the amount of data used in the overhead packets <NUM>.

Reducing data in the overhead packets <NUM> can be accomplished in a number of different fashions. For example, in some embodiments not according to the invention, the packets frequency of overhead packets <NUM> being sent in the network <NUM> can be reduced. That is, if overhead packets <NUM> are typically sent at some periodic or quasiperiodic interval, that interval can be increased such that overhead packets <NUM> are not sent as often to attempt to maintain a predetermined threshold amount of data in the user data packets <NUM> as compared to data in overhead packets <NUM>. In this case, the nodes <NUM> and the network will simply not have as current data as prior to the adjustment in overhead packet frequency intervals. The various nodes will need to respond accordingly with respect to decision-making processes. For example, the nodes may experience reduced decision-making processes at the nodes.

According to the invention, the amount of data in the various overhead packets <NUM> may be reduced. This can be accomplished in a number of different ways. For example, in some embodiments network wide metrics can be reduced for overhead packets <NUM>. Instead, more targeted metrics may be included in the overhead packets, such as metrics for particular nodes of particular relevance. For example, certain nodes that are particularly important as a result of being used by certain users, certain processes, etc., may have data about those nodes included in the overhead packets <NUM>, while data about other nodes that are less important may not have network metrics for them included in the overhead packets <NUM>.

In alternative or additional embodiments, the size of data in the overhead packets themselves can be reduced by optimizing data in the overhead packets <NUM>. For example, nonessential data can be identified and removed from the overhead packets <NUM>.

In alternative or additional embodiments, the size of the overhead packets can be reduced by eliminating data from the overhead packets that can be computed or just deduced from other data.

In alternative or additional embodiments, the size of the overhead packets can be reduced by reducing the precision of data in the packets. For example, some embodiments may be reduced from a precision requiring <NUM> bits to a precision requiring <NUM> bits.

In alternative or additional embodiments, the size of the overhead packets can be reduced by changing the format of data. For example, often, control data can be provided in either a normal format or a verbose format. Normal format provides some basic information while verbose formats include additional data that may be useful in some limited circumstances but is often less or not useful under ordinary circumstances. Thus, if there is a determination that the amount of data in the overhead packets <NUM> should be reduced, and packets are being transmitted in a verbose format, embodiments can cause the overhead packets <NUM> to be transmitted from the various nodes in a normal format instead to reduce the amount of data in the overhead packets <NUM>.

Additionally or alternatively, the overhead packets <NUM> may include information describing capabilities of a node sending a particular overhead packet and/or capabilities of neighbor nodes about with which the nodes have information.

Referring now to <FIG>, three example graphs are illustrated comparing data packets in a permissive environment versus data packets in a restricted environment. <FIG> illustrates that in the permissive environment more information may be sent more often in overhead data packets as illustrated in the graph <NUM>. In contrast, in restricted environments, less information is sent as illustrated at <NUM> with the same frequency as in a permissive environment, or the same amount of information is sent less often as illustrated at <NUM> than in a permissive environment. Note that while <FIG> illustrates that either less information is sent just as often or the same information is sent less often, it should be appreciated that different combinations of amount and frequency of data can be used as appropriate. For example but not according to the invention, some embodiments may reduce only the frequency that overhead packets are sent (as illustrated at <NUM>). In contrast and according to the invention, embodiments may reduce only the size of the individual packets being sent (as illustrated at <NUM>). In some embodiments, both size and frequency of data packets being sent may be reduced. In still other embodiments, the size of the data packets may be reduced, but the frequency may be increased while still decreasing overall bandwidth used by the overhead packets. Alternatively, the size of the data packets may be increased, but the frequency reduced while still decreasing overall bandwidth used by the overhead packets.

Referring now to <FIG>, a method <NUM> is illustrated. The method <NUM> includes acts for sending network data. The method <NUM> includes transmitting data on a communication link, in an environment, wherein a network control overhead portion of the data is allocated to network control overhead data packets for controlling how data is transmitted on the communication link, and a user data portion of the data is allocated to user data packets for transmitting data between users of nodes on the communication link, wherein each of the overhead data packets is transmitted independent of each of the user data packets (act <NUM>).

The method <NUM> further includes identifying a change in data capacity of the communication link (act <NUM>).

The method <NUM> further includes as a result, causing a change in the network control overhead portion of the data, changing size of network control overhead data packets to attempt to maintain a predetermined proportion factor for the network control overhead portion as compared to the user data portion (act <NUM>). For example, embodiments may change how network control overhead data is sent to attempt to have a certain, predetermined percentage of the transmitted data be network control overhead data. Alternatively or additionally, embodiments may attempt to maintain a predetermined number of overhead packets as compared to user data packets.

The method <NUM> further includes transmitting the network control overhead portion of the data according to the change (act <NUM>).

The method <NUM> may be practiced where causing a change in the network control overhead portion of the data comprises attempting to maintain the proportion factor for the network control overhead portion and the user data portion. (e.g., could be below <NUM>%).

The method <NUM> may be practiced where identifying a change in data capacity of the communication link comprises detecting an environmental change causing at least one of a temporal change or a spectral change in the communication link.

For example, a temporal change may include detecting a power jump in noise. A histogram is used to determine if the power jump is related to degradation of the communication environment, and in some embodiments, in particular to detect jamming signals.

With respect to spectral sensing, embodiments may include hardware to perform spectrum analysis, such as through the use of fast Fourier transforms (FFT) of signals to determine the various frequencies in a signal. Pattern recognition may be used to recognize less permissive environment, and in particular to detect jamming signals.

The method <NUM> may be practiced where identifying a change in data capacity of the communication link comprises detecting at least one of a temporal change in the communication link or a spectral change in the communication link.

The method <NUM> may be practiced where causing a change in the network control overhead portion of the data causes control packets to be sent to a different number of neighbors in the environment.

The method <NUM> may be practiced where causing a change in the network control overhead portion of the data causes control packets to be sent to neighbors in the environment in a multiplexed fashion. For example, packets can be sent for certain neighbors in a round robin fashion, time division multiplexed fashion, random fashion, priority fashion, manually defined fashion, etc. That is, a "turn-taking" scheme is implemented for sending messages intended for the various neighbor nodes.

The method <NUM> may be practiced where causing a change in the network control overhead portion of the data causes sent overhead data to have reduced precision from previously sent overhead data.

The method <NUM> may be practiced where causing a change in the network control overhead portion of the data causes network nodes to exhibit more decision making autonomy than prior to the change in the network control overhead portion of the data.

Further, with reference now to <FIG>, the methods may be practiced by a computer system, such as a node <NUM>, including one or more processors <NUM> and computer-readable media <NUM> such as computer memory.

In particular, the processor can control communication hardware <NUM> which transmits data on the antenna <NUM> to other nodes to perform the various functions illustrated herein.

When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computer, the computer properly views the connection as a transmission medium. Transmissions media can include a network and/or data links which can be used to carry desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer.

Claim 1:
A method of sending network (<NUM>) data, the method comprising:
transmitting data on a communication link, in an environment, wherein a network control overhead portion of the data is allocated to network control overhead data packets (<NUM>) for controlling how data is transmitted on the communication link, and a user data portion of the data is allocated to user data packets (<NUM>) for transmitting data between users of nodes (<NUM>) on the communication link, wherein each of the overhead data packets (<NUM>) are transmitted independent of each of the user data packets (<NUM>);
identifying a degradation in data capacity of the communication link;
as a result, causing a change in the network control overhead portion of the data, changing size of network control overhead data packets (<NUM>) to make the network control overhead data packets (<NUM>) smaller to attempt to maintain a predetermined proportion factor for the network control overhead portion as compared to the user data portion; and
transmitting the network control overhead portion of the data according to the change.