DYNAMIC DATA LINK SEGMENTATION AND REASSEMBLY

In a Mobile Ad Hoc Network (MANET), Dynamic Data Link Segmentation and Reassembly (SAR) functions perform a large packet to small packet transformation and reassembles packets at a receiving node. The packet size is determined dynamically in response to link quality data for each individual data link. By periodically sharing link quality information with neighbors, the segmentation size and corresponding reassembly can be performed using readily available neighborhood and waveform information.

Skip to: Description  ·  Claims  · Patent History  ·  Patent History
Description
RELATED APPLICATIONS

This application claims the benefit of the following U.S. Provisional Patent Applications, each of which is incorporated by reference herein in its entirety:

U.S. App. No. 60/976,730 filed on Oct. 1, 2007;

U.S. App. No. 60/976,735 filed on Oct. 1, 2007;

U.S. App. No. 60/976,740 filed on Oct. 1, 2007;

U.S. App. No. 60/976,744 filed on Oct. 1, 2007;

U.S. App. No. 60/976,747 filed on Oct. 1, 2007; and

U.S. App. No. 60/976,748 filed on Oct. 1, 2007.

STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH

This invention was made with support of the United States Government under Contract MDA972-01-9-0022. The United States Government may have certain rights in the invention.

BACKGROUND

This invention relates to physical layer communications in a Mobile Ad Hoc Network (MANET), and more particularly to dynamic segmentation and reassembly of data packets in a data link of a MANET. There remains a need for improved physical layer handling of data in wireless ad hoc networks, particularly where traffic of varying types and priorities are exchanged over dynamically changing data links.

SUMMARY

In a Mobile Ad Hoc Network (MANET), Dynamic Data Link Segmentation and Reassembly (SAR) functions perform a large packet to small packet transformation and reassembles packets at a receiving node. The packet size is determined dynamically in response to link quality data for each individual data link. By periodically sharing link quality information with neighbors, the segmentation size and corresponding reassembly can be performed using readily available neighborhood and waveform information.

In one aspect, a method that is disclosed herein includes providing a data item for transmission from a first node to a second node over a data link in an ad hoc wireless network, the data item having a length; determining a link quality of the data link; selecting a transmit mode for the data link according to the link quality, the transmit mode including a data rate; determining a payload length for the data link according to the data rate; segmenting the data item into one or more segments according to the payload length; and transmitting the one or more segments as one or more packets over the data link.

In one aspect, a device that is disclosed herein includes a data source that provides data; a data link that packetizes data from the data source into a packet; a radio that provides an air interface to a mobile ad hoc network including a link to a neighboring node; and a signal processor that prepares the packet for transmission over the air interface, the signal processor adapted to dynamically segment the packet into one or more segments according to a data rate for the link.

In one aspect, a computer program product that is disclosed herein performs the steps of providing a data item for transmission from a first node to a second node over a data link in an ad hoc wireless network; determining a link quality of the data link; selecting a transmit mode for the data link according to the link quality, the transmit mode including a data rate; determining a payload length for the data link according to the data rate; segmenting the data item into one or more segments according to the payload length; and transmitting the one or more segments as one or more packets over the data link.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention and the following detailed description of certain embodiments thereof may be understood by reference to the following figures wherein:

FIG. 1 is a block diagram of a Mobile Ad Hoc Network (MANET).

FIG. 2 is a block diagram of a MANET having multiple backhaul access points.

FIG. 3 is a block diagram of a node in a MANET.

FIG. 4 is a flow chart of a process for measuring link quality.

FIG. 5 is a flow chart of a process for dynamic segmentation and reassembly of data.

DETAILED DESCRIPTION

The following description details certain embodiments of a dynamic segmentation and reassembly technique for use in packetizing data for transmission over wireless communication links. By tracking link quality based on local metrics and/or information shared among nodes in the network, data can be segmented and reassembled dynamically to provide more efficient use of communication links without requiring more overhead in individual packet headers. While the invention is described below in relation to Mobile Ad Hoc Networks, it will be understood that the principles of the invention may be suitably applied in any environment where link quality and/or transmission modes vary dynamically, and information relating to link quality is available to nodes participating in a network.

So-called “infrastructure” networks employ base stations at fixed locations to form a substantially fixed network infrastructure. The base stations may enable communication among the wireless devices of the network, between a wireless device and another device on another network, and so on. This general approach is employed, for example, in 802.11 or WiFi networks, as well as in cellular telephony networks. By contrast, ad hoc wireless communications networks are formed in an ad hoc manner among any number of participating nodes that may periodically join, leave, or move within the ad hoc network. Although such networks do not belong to any fixed network infrastructure, they may support conventional network communications such as point-to-point or broadcast communications, and may be adapted for use with any of the Internet Protocols (e.g. IPv4, IPv6) or similar, well-established networking protocols.

In general, a Mobile Ad Hoc Network (MANET) is an ad hoc wireless network in which some (or all) of the participating devices—also referred to herein as “nodes”—are mobile. Thus the topography of a MANET may change not only as nodes enter and leave the network, but as nodes move relative to one another within the network. As the network topology changes, communications routes through the network may also vary in terms of availability and in terms of quality. While the invention(s) disclosed herein have broad applicability, they may be particularly useful in a MANET environment where the context of continuously changing node-to-node links poses challenges to, and opportunities for, maintaining traffic flow.

FIG. 1 shows a Mobile Ad Hoc Network (MANET) that may be used with the systems and methods described herein. In general, a MANET 100 may include subscriber devices 102, access points 104, and backhaul access points 108 (for coupling to a core network 110 such as the Internet), and subscriber devices 110, all generally interconnected as shown in FIG. 1. Without limiting the generality of the foregoing, one or more of the subscriber devices 102 may be a stationary device 112 that does not move within the MANET 100. It will be understood that the device-to-device links illustrated in FIG. 1 are for purposes of illustration only, and in no way are intended to limit the nature or number of links between devices in the MANET 100, which may be created, removed, and/or modified over time according to any corresponding protocols followed by the devices within the MANET 100. In general, the links among devices within the MANET 100 are wireless links, although wired links may optionally be employed in various locations such as between the backhaul access point 108 and the core networks 110. In order to maintain the MANET 100, typically one or more protocols are shared among the participating devices to control creation, removal, and modification of individual data links between devices, and to route traffic and control information among the devices. The term protocol as used herein generally refers to any and all such rules, procedures, and/or algorithms used in maintaining the MANET 100, unless a specific protocol is explicitly stated or otherwise clear from the context.

Subscriber devices 102 may include any general purpose nodes participating in the MANET 100 according to suitable protocols. It will be understood that while subscriber devices 102 may include terminal nodes that send or receive data, in a MANET 100 as described herein subscriber devices 102 may also suitably be employed as intermediate nodes to route traffic to and from other subscriber devices 102. Thus an ad hoc network as described herein is generally extensible, and as new subscriber devices 102 appear within the MANET 100, they may form a part of the MANET 100 fabric that routes traffic among other nodes. In general, subscriber devices 102 may include any network or computing devices that include a wireless interface, network protocol stack(s), and the like adapted to participate in the MANET 100. The Internet Protocol may usefully be employed in subscriber devices 102 within the MANET 100 in order to use well-established addressing schemes and the like. A subscriber device 102 may include without limitation a cellular phone, personal digital assistant, wireless electronic mail client, laptop computer, palmtop computer, desktop computer, video device, digital camera, electrical instrument, sensor, detector, display, media player, navigation device, smart phone, a wireless networking card, or any other device that might usefully participate in a network. In some embodiments subscriber devices may include a GPS receiver providing a position and timing reference. In embodiments, each subscriber device 102 may be authenticated and/or authorized before being granted access to the MANET 100.

Access points 104 may be provided to establish a permanent or otherwise generally stable infrastructure to the MANET 100. In one embodiment, the access points 104 may employ identical network functionality and protocol stacks as subscriber devices 102. However, an access point 104 may have a number of differences related to their dedicated function within the MANET 100. In one aspect, the access points 104 may have no associated computing device that originates or consumes network traffic. That is, the access points 104 may simply form a fixed mesh of participants in the MANET 100 and relay traffic among other network participants. An access point 104 may also include a physical connection to a power infrastructure so that it may be physically installed at a location and operate autonomously without requiring regular maintenance for battery changes and the like. In another aspect, access points 104 may include some minimal supplemental circuitry related to, e.g., status and diagnostics, or for receiving software updates and the like. This may improve continuity of coverage across a physical region where subscriber devices 102 may or may not be present with any regularity, and may ensure that wireless network resources are available in a desired area. In embodiments the access point 104 may be of a size and weight making it suitable for mounting and/or concealment in a variety of locations including indoor and outdoor locations, and including mounting on walls, floors, ground, ceilings, roofs, utility poles, and so forth.

Each access point 104 may include or utilize a timing reference such as any of the Network Timing Protocols described in RFC 778, RFC 891, RFC 956, RFC 958, RFC 1305, RFC 1361, RFC 1769, RFC 2030, and RFC 4330, all published by The Internet Engineering Task Force. Each access point may also, or instead, include a GPS receiver providing a position and timing reference. In embodiments the wireless access points 104 may have a greater transmit power and/or a greater antenna gain than mobile subscriber devices 102, thus providing greater physical coverage than some other devices within the MANET 100.

The MANET 100 may include one or more backhaul access points 108 that generally operate to connect nodes within the MANET 100 to a core network 110 such as the Internet. On one interface, a backhaul access point 108 may have a wireless radio interface, protocol stack(s) and other components of other nodes within the MANET 100. On another interface, the backhaul access point 108 may provide any suitable interface to the core network 110. The backhaul access point 108 may, for example, be deployed at a fiber access point or the like that provides high-speed data capacity Internet traffic. For example and without limitation, the fiber access point may include a Gig-E router site or an OC-3/12 add-drop multiplexer site. In an embodiment the backhaul access point 108 may include two Gig-E interfaces for backhaul connections. It will be understood that any number of a variety of suitable interfaces for backhaul connections may be usefully employed with a backhaul access point 108 as described herein.

A backhaul access point 108 may serve multiple access points 104 within the MANET 100, and may distribute network load across those access points 104. Alternatively, a single backhaul access point 108 may serve a single access point 104. In some embodiments, the number of access points 104 served by a backhaul access point 108 may relate to the amount of intra-MANET traffic and extra-MANET traffic, the nature and direction of multicast versus unicast data, and so forth. This association between backhaul access points 108 and access points 104 may change from time to time depending on the presence of other subscriber devices 102 within the area, network conditions, and so forth. In some cases an access point 104 may for a time be associated with more than one backhaul access point.

The core networks 110 may provide access to network resources outside the MANET 100. The core networks 114 may connect disparate, geographically remote and/or local instances of the MANET 100 to form a single network. The core networks 110 may include any and all forms of IP networks, including LANs, MANs, WANs, and so on. The core networks 110 may also or instead include the public Internet. In other embodiments the core networks 110 may consist exclusively of a single zone of administrative control, or a number of zones of administrative control, or some combination of an administrative zone and any of the foregoing.

The stationary device 112 may include any subscriber device 102 that, for whatever reason, does not physically move within the MANET 100. In general, such fixed physical points within the MANET 100 may provide useful routing alternatives for traffic that can be exploited for load balancing, redundancy, and so forth. This may include, for example, a fixed desktop computer within the MANET 100.

Details of various MANET 100 protocols—referred to collectively herein as the MANET Wireless Protocol (MWP)—are provided below. In general, any of the nodes above that participate in the MANET 100 according to the MWP may include a hardware platform enabling radio software and firmware upgrades, which may include for example a dedicated or general purpose computing device, memory, digital signal processors, radio-frequency components, an antenna, and any other suitable hardware and/or software suitable for implementing the MWP in participating nodes.

In embodiments, any of the foregoing devices, such as one of the access points 104, may also include an adapter for other networks such as an Ethernet network adapter or equivalent IP network adapter, router, and the like, so that non-MANET 100 equipment can participate in the MANET 100 through the device. It will also be appreciated that, while a connection to other core networks 110 is shown, this connection is optional. A MANET 100 (with or without fixed access points 104) may be maintained independently without connections to any other networks, and may be usefully employed for the sole purpose of trafficking data among subscriber devices 102.

FIG. 2 is a block diagram of a MANET having multiple backhaul access points. In general, the MANET 100 may include subscriber devices 102 (not shown), access points 104, and backhaul access points 108 for connecting to core networks 110, and an edge router 202 that facilitates routing between the MANET 100 and the core networks 110.

The edge router 202 may include any devices or systems for maintaining connectivity between the MANET 100 and the core networks 110, and may further support or enhance network activity within the MANET 100. For example, the edge router 202 may include an industry standard and/or proprietary Address Resolution Protocol server, an application server, a Virtual Private Network server, a Network Address Translation server, a firewall, a Domain Name System server, a Dynamic Host Configuration Protocol server, and/or an Operations, Administration, Maintenance and Provisioning server, as well as any combination of the foregoing. These various components may be integrated into the edge router 202, or may be provided as separate (physical and/or logical) systems that support operation of the edge router 202. These supporting systems may in general support operations such as broadband Internet connectivity within the MANET 100 and the like, broadcast communications crossing between the MANET 100 and the core networks 110, and so forth, as well as the use of multiple backhaul access points 108 to efficiently route inter-MANET traffic among subscriber devices 102.

FIG. 3 is a block diagram of a node in a MANET. The node may be any of the devices described above, such as a subscriber device 102, access point 104, or backhaul access point. In general the node 300 may include data sources 302, a data link 304, a signal processor 306, a radio 308, data queues 310, routing information 312, and neighborhood information 314. It will be understood that the following description is general in nature, and that numerous arrangements of processing, storage, and radio frequency hardware may be suitably employed to similar affect. This description is intended to outline certain operations of a MANET node relevant to the systems and methods described herein, and in no way limits the invention to the specific architecture shown in FIG. 3.

The data sources 302 may include any applications or other hardware and/or software associated with the node 300. This may include, for example, programs running on a laptop or other portable computing device, a web server or client, a multimedia input and/or output sources such as a digital camera or video, and so forth. More generally any device, sensor, detector, or the like that might send or receive data may operate as a data source 302 in the node 300. It will be further understood that some nodes such as access points 104 may not have independent data sources 302, and may function exclusively as MANET 100 network elements that relay data among other nodes and/or provide network stability as generally described above.

The data link 304 may include hardware and/or software implementing data link layer functionality such as neighbor management, segmentation and reassembly of data packets, Quality of Service (QoS) management, data queue servicing, channel access, adaptive data rates, and any other suitable data link functions. In general, the data link 304 controls participation of the data sources 302, and more generally the node 300, in a MANET. It will be understood that the data link 304 in FIG. 3 may implement any number of lower layer (e.g., physical layer) or higher layer (e.g., routing, transport, session, presentation, application) protocols from a conventional Open Systems Interconnection (OSI) Model, or any such protocols and related functions may be implemented elsewhere within the node 300, such as in an IP stack executing on the data source 302, or in firmware within the signal processor 306 or radio 308, or in additional functional blocks not depicted in FIG. 3. For example, routing protocols may be implemented within hardware/software of the data link 304 in order to ensure that nodes in the MANET 100 share appropriate routing functions. Thus it will be appreciated that while the certain elements discussed herein might suitably be placed within the data link layer of a formal protocol stack, the systems and methods of this disclosure might also or instead be implemented with variations to a conventional protocol stack, or without any formal protocol stack whatsoever.

The data link 304 may include a link manager that collects neighbor information from the data link layer, and may form and maintains the neighborhood information 314 for the node 300. This table may be used to establish routes to neighbors, and may be updated periodically with information from one and two hop neighbors as described further below. The link manager may monitor statistics on all active links for a node on a link-by-link basis in order to support link quality calculations and other functions described herein.

The signal processor 306 may include waveform processing and timing functions associated with transceiving data at the node 300. This may include, for example, network timing, time-slot and/or frame-based waveform configuration, maintenance of one or more families of Orthogonal Frequency Division Multiplexing waveform modes (or other transmit mode waveforms), receiver detection of waveform modes, error correction coding, and so forth. In general, the signal processor 306 may be implemented in any suitable combination of digital signal processors, field programmable gate arrays, application-specific integrated circuits, microprocessors, or other general or special-purpose computing devices.

In one embodiment, a family of Orthogonal Frequency Division Multiplexing (OFDM) waveforms may be employed for adaptive data rate communications. The modes of the OFDM waveforms may, for example, include 7.2 MHz Quadrature Phase-Shift Keying (QPSK), 4.8 MHz QPSK, 2.4 MHz QPSK, 1.2 MHz QPSK, 1.2 MHz Binary Phase-Shift Keying (BPSK), or the like. The effective data rate for transmit waveforms may be affected by other parameters such as error correction. In order to facilitate implementation of an adaptive rate system, the transmit modes may be organized into an ordered list of monotonically increasing data rates matched to correspondingly decreasing signal robustness, thus permitting unique mapping of link quality to transmit mode. In one aspect, the actual waveform mode selected to transmit data on a link may be adaptively selected according to any suitable evaluation of link quality for links to neighboring nodes.

The radio 308 in general operates to transmit data from the data queue(s) 310, as organized and encoded by the data link 304 and the signal processor 306 (along with any control information, packet header information, and so forth), over a wireless air interface to other nodes in a MANET, and to perform complementary data reception. The radio 308 may include any radio frequency analog circuitry and the like, and may be coupled to the signal processor 306 which converts data and control information between a digital representation used within the node 300, and an analog representation used in radio frequency communications with other nodes. In embodiments, a low power radio 308 may be employed, such as where the node 300 is a battery-powered mobile device. In other embodiments, a high-power radio 308 may be employed, such as where the node 300 is an access point or backhaul access point connected to a fixed power infrastructure. In an embodiment, the radio 308 and signal processor 306 provide adaptive data rate coding capable of changing transmit modes, error correction, and the like according to measured link quality.

The data queue(s) 310 may include any data for transmission from the node 300. This may include, for example, data from the data sources 302, data that is relayed by the node 300 from other nodes in the MANET, and/or control information scheduled for transmission within data packets from the node 300. The data queue(s) 310 may be organized in any suitable fashion, and may include a single first-in-first-out queue, multiple queues, prioritized queues, and the like. In one embodiment, the node 300 may include multiple prioritized queues to assist in providing various service levels, such as for QoS traffic. In general, data in the data queue(s) 310 is delivered according to any suitable queuing mechanism to the data link 304, signal processor 306, and radio 308 for transmission within the MANET.

Routing information 312 such as a routing or forwarding table may be provided to support routing functions by the node 300. In general, this may include, for example, a destination address or identifier, a cost of a path to the destination (using any suitably cost calculation), and a next hop on that path. Other information such as quality of service and other metrics for various routes and links may also be provided for more refined routing decisions.

Neighborhood information 314 may be maintained in a database, flat file, routing table, or other suitably organized volatile or non-volatile storage within the node 300. The neighborhood information 314 generally supports the creation and maintenance of the MANET as well as routing functions of each MANET node. Within the MANET, each node may interact with other nodes to autonomously identify and maintain local network connections, shift capacity, dynamically form routes throughout the network, and so on. The routing functions of the node (as supported by the neighbourhood information 314) may accommodate delay-sensitive (e.g. voice) traffic, delay-tolerant traffic with quality of service (QoS) prioritization, and so on.

The neighborhood information 314 may include an identification of neighboring nodes along with information relating to those nodes. This may include one-hop neighbors (i.e., neighboring nodes in direct wireless communication with the node 300), two-hop neighbors (i.e., neighboring nodes that communicate with the node 300 through only one other node), or any other nodes or participants within the MANET. In one aspect, neighborhood information 314 includes link quality information for the radio 308, which may be obtained from any combination of physical layer and data link data, and may be employed to adapt the data rate of communications according to currently present channel conditions. The neighborhood information may also include QoS data used to select next hops for QoS data. Other useful information may include bandwidth utilization, node weights, node position (either logical or physical), and queue latency for each QoS type and/or other priority type.

In one aspect, the neighborhood information 314 may be gathered during periodic exchanges (such as during control transmissions) with neighboring nodes, which may occur under control of the link manager of the data link 304. For example, the node 300 may determine output bandwidth (i.e., data transmit requirements) for each link that the node 300 has with a neighbor, and may transmit this to one-hop neighbors. Similarly, the node 300 may receive output bandwidth from each one-hop neighbor. Using this data, each node 300 may further calculate its own input bandwidth (i.e., data receive requirements) from each link to a neighboring node, and this information may in turn be exchanged with one-hop neighbors. Following a system-wide exchange with one-hop neighbors, the node 300 (and every other node in the MANET) may calculate a node weight that represents relative output requirements for the node 300. For example, the node weight, W, may be calculated as:

W = B W out B W out + B W i n [ Eq . 1 ]

where BWout is the total output or transmit requirements for each link of the node 300, and BWin is the total input or receive requirements for each link of the node 300. Finally, the node 300 may transmit the node weight to each neighboring node, and may in turn receive a node weight from each neighboring node. It will be appreciated that the node weight, W, may be further processed for use with other neighborhood information 314, such as by limiting the value according to the number of bits used for control information, or by providing a supplemental adjustment to the node weight to further refine control of routing or other MANET functions. Sharing of information for maintenance of the neighborhood information 314 may be controlled, for example, by the data link 304, which may apply any suitable technique to determine when to share information with one hop neighbors. In one aspect, the data link 304 may transmit data whenever a change is detected in the MANET such as an addition or deletion of a node.

In another aspect, for a MANET that has location-aware nodes 300 (e.g., using Global Positioning System (GPS) data, signal strength data, and so forth), the neighborhood information 314 may include position data in order to support location-based routing and the like.

Having described in general terms a MANET that can implement the dynamic segmentation and reassembly disclosed herein, the description now turns to a more detailed treatment of an embodiment of systems and methods for dynamic segmentation and reassembly of data. First, an example embodiment of link quality measurement is provided, followed by an example embodiment of the use of this link quality data to segment and reassemble data packets in the physical layer of a MANET radio.

FIG. 4 is a flow chart of a process for measuring link quality. The process 400 may start 402 with a node counting packets received on a link over some predetermined time period such as one second as shown in step 404. Over a corresponding time period, the node may also count packets sent on the link as shown in step 406. For a Time Division Multiple Access (TDMA) system, packet counts may include a count of the number of slots received in a TDMA frame.

Each node may then exchange packet count information for each link with neighboring nodes as shown in step 408. This may include, for example, transmitting a count of packets received for each link to each neighboring node, and receiving from each neighboring node the number of packets that they received over each link. This data may be used, for example, to evaluate missed, dropped, or otherwise lost packets for each data link as described below.

Each node may obtain a obtaining a Receive Strength Signal Indicator (RSSI) from a channel, as shown in step 410. This data may be obtained, for example, directly from the radio hardware for the node. It will be understood that while an RSSI is a common metric available from radio hardware, any suitable signal strength indicator may also, or instead, be employed.

As shown in step 412, the node may then calculate a link quality for each link, and the process 400 may return to step 404 where new packet counts may be obtained. Any suitable calculation may be used to calculate link quality. For example a ratio of sent-to-received packets may be obtained and weighted according to the RSSI. These values provide a useful metric that combines the actual, physical signal strength and the actual, observed packet integrity for a link. Other metrics may also, or instead, be employed, such as a signal-to-noise ratio, an average signal-to-noise ratio over a predetermined time interval, a bit-error rate (prior to any forward error correction), or a simple dropped packet count. The resulting link quality metric(s) may be usefully employed in a number of manners. In one aspect, the link quality metric(s) may be employed to select a transmit mode (and corresponding data rate) for each link, thus supporting an adaptive data rate communication channel. In another aspect, link quality information may be stored in the neighborhood information for the node, and may be employed in cost-based route calculations and other routing or network functions. More specifically as it relates to this disclosure, the link quality metric(s) may be employed to support dynamic segmentation and reassembly of packets as described in greater detail below.

It will be understood that numerous variations to the above process 400 are possible without departing from the scope of the invention. For example, the rate of change in link quality, distance between nodes, network topology, node movement, or any other metrics that can be captured by one or more nodes and usefully employed in a link quality calculation. Similarly, the order of steps in the process 400 above is not strictly required, and a step such as calculation of link quality may be performed at any regular interval relative to packet counts and channel measurements. Further, while illustrated as a single process, it will be understood that any number of link calculations may be performed, either in serial or in parallel, for some or all of the links of a node. All such variations that would be apparent to one of ordinary skill in that art and may be usefully employed in a MANET node are intended to fall within the scope of this disclosure.

FIG. 5 is a flow chart of a process for dynamic segmentation and reassembly of data. In general, the process 500 includes a transmit node process 502 and a receive node process 504 executed on a node that transmits the data and a node that receives the data respectively. The process 500 may begin 506 with receiving a packet of data as shown in step 508. The packet may be received from any source within a node, including without limitation one of the data sources of the node as described above, or from one of the data queues of the node used for relaying unicast or multicast data. The packet may be a layer three packet including header information such as a source identifier (e.g., a layer 2 address of the node that transmitted the packet), a destination identifier (e.g., a layer 2 address of a final destination for the packet), a type of the packet (e.g., control, application data, invalid), and a type of service for the packet (e.g., a QoS level or the like for the packet). It will be understood that while the following description relates to packets, which are typically used in an IP network, any data item may be usefully processed as described herein, whether it is received in packetized or other streamed, serial, or segmented form. For purposes of clarity, it is further noted that a data link, as used in the following description, refers to an aspect of the air interface for a node, as distinguished from the data link 304 described above, which is hardware and/or software implementing layer three and other functionality of a network protocol stack.

As shown in step 510, a data link for the packet may be evaluated. In one embodiment, this evaluation may be made with direct reference to information in the neighborhood information maintained by the data link, and may simply require retrieving relevant information for the link. Thus, link quality, a transmit mode, and the corresponding payload length may be predetermined for the link according to any adaptive data rate protocol employed within the node and/or MANET, and accessed as needed by the segmentation and reassembly process to facilitate efficient segmentation and reassembly of data. The payload length may be stored with other information for the link, or may be calculated based on other parameters for the corresponding waveform mode. Relevant information may also, or instead, be obtained by direct measurement of physical layer characteristics, or by some combination of these. Thus, in general evaluation of the data link may draw on information collected and maintained by the node during ordinary operation, or may occur concurrently with receipt of the packet using any available data, or some combination of these. However performed, the evaluation of the data link may result in a determination or selection of a payload length for physical layer packets transmitted by the radio.

As shown in step 512, after determining a payload length for data based upon an evaluation of a particular data link, the packet received in step 508 may be segmented. In general, this step involves a comparison of the packet length to the available payload length for the transmit mode of the data link. If the packet length is smaller than the payload length, the data in the packet may be transmitted without segmentation. If the packet length is greater than the payload length, any type of segmentation may be suitably employed. By way of example, for an adaptive data rate system using four transmit modes having payload lengths of 1× the network packet length, 0.5× the network packet length, 0.25× the network packet length, and 0.125× the network packet length, a network packet may be divided into one, two, four, or eight segments. In one aspect, additional capacity in a transmit mode payload may be filled with other data, including other segments of other network packets intended for the same data link or node. It will be appreciated that the above example is provided by way of illustration and not limitation, and that there are numerous types of segmentation that may be suitably and usefully implemented in a segmentation and reassembly process as described herein. The applicant has successfully deployed a dynamic segmentation and reassembly as described herein using as many as twelve different waveform modes.

As shown in step 514, each segment may be encapsulated for communication to another node in the MANET. This may include the addition of a header containing any of the header information from the original packet, as well as supplemental information to support reassembly. For example, the segment header may include a transmit mode of the segment, a payload length for the segment that specifies a length of a data portion of the packet (e.g., in bytes), a fragment identifier that specifies a position of the segment in the original packet, and a last fragment indicator. A stream identifier may be provided that identifies a number of related segments such as segments that share a destination and/or source address, type of service, and transmit mode. This may be used, for example, to identify a number of segments belonging to a common stream, but spanning two or more of the network packets received in step 508. A non-segmented packet may be identified using this header information, such as by setting both the fragment identifier and the last fragment indicator to a value of one. It will be understood that the segmentation header information described above is optional. Information such as service types and transmit modes may also or instead be obtained or inferred from neighborhood information maintained by the receiving node as generally described above.

As shown in step 516, a segment may be transmitted to a receiving node. This may include analyzing header information and queuing the segment for transmission using any suitable techniques. The segment may then be transmitted over a link of the air interface using a corresponding link and transmit mode.

As shown in step 518, the segment may be received by a receiving node over the corresponding link of the air interface. The segment may then be reassembled with other segments into a network packet using complementary operations to those described above. In general, this reassembly may include using data in the segment header and/or information maintained at the receiving node concerning the neighboring nodes.

As shown in step 520, the reassembled network packet may be queued for transmission to another node in the MANET according to any destination information appended to the data. It will be understood that this step is optional, and where the data is intended for use at the receiving node, the network packet may instead be further decoded for use in applications or the like executing on the receiving node according to any protocol stack(s) on the node. Where the packet is queued for forwarding to another node, the network packet may again be segmented as generally described above.

As shown in step 522, the process may end. It will be appreciated that the process 500 may be repeated at each hop of a path through a network. Thus in one aspect there is disclosed herein a segmentation and reassembly process that dynamically segments and reassembles data on a link-by-link basis across a multi-hop network route. It will further be appreciated that the order of the steps above may be varied, and that steps may be added to, removed from, or modified in the above process 500 without departing from the scope of this disclosure. For example, steps that evaluate link quality and assign waveform transmit modes to individual links may execute independently from the segmentation and reassembly process, and may provide a programming interface, function call, object, service, or the like that provides relevant neighborhood data on an as-needed basis. In addition, a node may support multiple data queues, each of which may execute segmentation and reassembly processes in parallel or serially. It will be further understood that the methods and systems described above may be suitably adapted to other hardware and or software, such as by using directional antennas to maintain individual data links or by using neighborhood information instead of segment header information to control segmentation and reassembly. All such variations that would be apparent to one of ordinary skill in the art are intended to fall within the scope of this disclosure.

A wide range of software and hardware platforms may be used to deploy the systems and methods described herein. Generally, the system components may be realized in hardware, software, or some combination of these. The components may be realized in one or more microprocessors, microcontrollers, embedded microcontrollers, programmable digital signal processors or other programmable devices, along with internal and/or external memory such as read-only memory, programmable read-only memory, electronically erasable programmable read-only memory, random access memory, dynamic random access memory, double data rate random access memory, Rambus direct random access memory, flash memory, or any other volatile or non-volatile memory for storing program instructions, program data, and program output or other intermediate or final results. The components may also, or instead, include one or more application specific integrated circuits (ASICs), dedicated semiconductor devices, programmable gate arrays, programmable array logic devices, or any other device that may be configured to process electronic signals.

Any combination of the above circuits and components, whether packaged discretely, as a chip, as a chip set, or as a die, may be suitably adapted to use with the systems described herein. It will further be appreciated that the above components may be realized as computer executable code created using a structured programming language such as C, an object oriented programming language such as C++, or any other high-level or low-level programming language that may be compiled or interpreted to run on one of the above devices, as well as heterogeneous combinations of processors, processor architectures, or combinations of different hardware and software. Any such combination of hardware and software suitable for use in an ad hoc network as described herein may be employed without departing from the scope of this disclosure.

Those skilled in the art will recognize, or will be able to ascertain using no more than routine experimentation, numerous equivalents to the systems and methods described herein. Such equivalents are considered to fall within the scope of the present invention. Moreover, the embodiments described herein are intended to exemplify the invention and not to limit it. While the invention is described above in connection with certain preferred embodiments, other embodiments may be understood by those of ordinary skill in the art. All such variations, modifications, extensions, additions, omissions, and the like as would be apparent to one of ordinary skill in the art are intended to fall within the scope of this disclosure, which is to be interpreted in the broadest sense allowable by law.

Claims

1. A method comprising:

providing a data item for transmission from a first node to a second node over a data link in an ad hoc wireless network, the data item having a length;
determining a link quality of the data link;
selecting a transmit mode for the data link according to the link quality, the transmit mode including a data rate;
determining a payload length for the data link according to the data rate;
segmenting the data item into one or more segments according to the payload length; and
transmitting the one or more segments as one or more packets over the data link.

2. The method of claim 1 further comprising measuring a link quality of the data link, and selecting a data rate for the data link based upon the link quality.

3. The method of claim 2 wherein selecting a data rate further includes selecting one of a plurality of transmit modes for the data link.

4. The method of claim 2 wherein measuring a link quality includes obtaining a receive signal strength indicator for the data link.

5. The method of claim 4 further comprising communicating the receive signal strength indicator from the first node to the second node.

6. The method of claim 2 further comprising counting a number of packets sent from the second node to the first node and transmitting this number from the second node to the first node.

7. The method of claim 6 wherein measuring a link quality includes comparing the number of packets sent from the second node to a number of packets received from the second node.

8. The method of claim 1 further comprising selecting the data link from a plurality of available data links between the first node and the second node.

9. The method of claim 1 further comprising:

receiving the one or more packets at the second node;
receiving a receive signal strength indicator at the second node, the receive signal strength indicator indicative of a strength of a signal for the data link received at the first node from the second node;
receiving a first packet count from the first node, the first packet count indicative of a number of packets received at the first node from the second node over a time period;
maintaining a second packet count at the second node, the second packet count indicative of a number of packets transmitted from the second node to the first node over the time period;
inferring a segmentation for the one or more packets based upon the first packet count, the second packet count and the receive signal strength indicator; and
reassembling the data item based upon the segmentation of the one or more packets.

10. The method of claim 9 further comprising determining a second receive signal strength indicator according to a strength of a signal for the data link received at the second node from the first node and transmitting the second receive signal strength indicator from the second node to the first node.

11. The method of claim 1 further comprising, when the payload length is larger than a segment of the data item one of the packets, adding a second segment of a second data item to the payload of the one of the packets.

12. The method of claim 1 wherein segmenting includes selectively using one, two or four segments for each of the one or more packets according to a length of the data item.

13. A device comprising:

a data source that provides data;
a data link that packetizes data from the data source into a packet;
a radio that provides an air interface to a mobile ad hoc network including a link to a neighboring node; and
a signal processor that prepares the packet for transmission over the air interface, the signal processor adapted to dynamically segment the packet into one or more segments according to a data rate for the link.

14. The device of claim 13 wherein the air interface includes a plurality of links to a plurality of neighboring nodes.

15. The device of claim 13 wherein the signal processor modulates the one or more segments with one of a plurality of waveform modes, the one of the plurality of waveform modes selected according to a link quality metric for the link.

16. The device of claim 15 wherein the link quality metric is determined using a signal strength indicator for the link.

17. The device of claim 15 wherein the link quality metric is determined using a received packet count and a sent packet count for the link.

18. A computer program product comprising computer executable code that, when executing on one or more computing devices, performs the steps of:

providing a data item for transmission from a first node to a second node over a data link in an ad hoc wireless network;
determining a link quality of the data link;
selecting a transmit mode for the data link according to the link quality, the transmit mode including a data rate;
determining a payload length for the data link according to the data rate;
segmenting the data item into one or more segments according to the payload length; and
transmitting the one or more segments as one or more packets over the data link.

19. The computer program product of claim 18 further comprising computer executable code that performs the step of measuring a link quality of the data link, and selecting a data rate for the data link based upon the link quality.

20. The computer program product of claim 18 wherein selecting a data rate further includes selecting one of a plurality of transmit modes for the data link.

Patent History
Publication number: 20090122753
Type: Application
Filed: Sep 30, 2008
Publication Date: May 14, 2009
Inventors: Timothy J. Hughes (San Diego, CA), Daniel R. Cormier (Brea, CA), Tyler J. Ulinskas (La Jolla, CA)
Application Number: 12/242,597
Classifications
Current U.S. Class: Channel Assignment (370/329)
International Classification: H04W 72/08 (20090101);