US20090122766A1 - Nested weighted round robin queuing - Google Patents
Nested weighted round robin queuing Download PDFInfo
- Publication number
- US20090122766A1 US20090122766A1 US12/242,697 US24269708A US2009122766A1 US 20090122766 A1 US20090122766 A1 US 20090122766A1 US 24269708 A US24269708 A US 24269708A US 2009122766 A1 US2009122766 A1 US 2009122766A1
- Authority
- US
- United States
- Prior art keywords
- queues
- round robin
- queue
- weighted round
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 241001522296 Erithacus rubecula Species 0.000 title claims abstract description 66
- 238000000034 method Methods 0.000 claims abstract description 33
- 230000005540 biological transmission Effects 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 7
- 235000003642 hunger Nutrition 0.000 abstract description 2
- 230000037351 starvation Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 5
- 238000012913 prioritisation Methods 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000007792 addition Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000010363 phase shift Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000000153 supplemental effect Effects 0.000 description 2
- 230000032258 transport Effects 0.000 description 2
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012876 topography Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/02—Communication route or path selection, e.g. power-based or shortest path routing
- H04W40/04—Communication route or path selection, e.g. power-based or shortest path routing based on wireless node resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/122—Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/124—Shortest path evaluation using a combination of metrics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/125—Shortest path evaluation based on throughput or bandwidth
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/20—Hop count for routing purposes, e.g. TTL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/02—Communication route or path selection, e.g. power-based or shortest path routing
- H04W40/12—Communication route or path selection, e.g. power-based or shortest path routing based on transmission quality or channel quality
- H04W40/16—Communication route or path selection, e.g. power-based or shortest path routing based on transmission quality or channel quality based on interference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/02—Communication route or path selection, e.g. power-based or shortest path routing
- H04W40/12—Communication route or path selection, e.g. power-based or shortest path routing based on transmission quality or channel quality
- H04W40/14—Communication route or path selection, e.g. power-based or shortest path routing based on transmission quality or channel quality based on stability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/24—Connectivity information management, e.g. connectivity discovery or connectivity update
- H04W40/30—Connectivity information management, e.g. connectivity discovery or connectivity update for proactive routing
Definitions
- This application relates to queuing data for transmission in a Mobile Ad Hoc Network (MANET), and more particularly to queuing prioritized data according to a weighted nested round robin queue.
- MANET Mobile Ad Hoc Network
- nested weighted round robin queues are employed to selectively provide channel access for traffic according to a priority or Quality of Service (QoS) for data.
- QoS Quality of Service
- Prioritized queues may also be provided for preemptive delivery of high priority traffic.
- a method that includes storing a plurality of data packets in a plurality of queues for transmission in a number of time slots from a node of a mobile ad hoc network, each one of the plurality of queues having a weight; selecting a first data packet from the plurality of data packets for transmission in one of the number of time slots according to a first weighted round robin schedule that is weighted to serve a first group of the plurality of queues according to their respective weights; and selecting a second data packet from the plurality of data packets according to a second weighted round robin schedule that is weighted to serve a second group of the plurality of queues according to their respective weights, wherein the first weighted round robin schedule includes a weight for the second round robin schedule and periodically serves the second weighted round robin schedule according to the weight, thereby selecting the second data packet in the first weighted round robin schedule for transmission in one of the number of time
- a computer program product disclosed herein include computer executable code that, when executing on one or more computing devices, performs the steps of: storing a plurality of data packets in a plurality of queues for transmission in a number of time slots from a node of a mobile ad hoc network, each one of the plurality of queues having a weight; selecting a first data packet from the plurality of data packets for transmission in one of the number of time slots according to a first weighted round robin schedule that is weighted to serve a first group of the plurality of queues according to their respective weights; and selecting a second data packet from the plurality of data packets according to a second weighted round robin schedule that is weighted to serve a second group of the plurality of queues according to their respective weights, wherein the first weighted round robin schedule includes a weight for the second round robin schedule and periodically serves the second weighted round robin schedule according to the weight, thereby selecting the second data
- a device disclosed herein includes a data source that provides a plurality of data packets; a queue that schedules the plurality of data packets for transmission according to a weighted round robin, the weighted round robin including at least one weight for a nested weighted round robin queue, the nested weighted round robin queue served according to its weight in the weighted round robin, thereby providing scheduled packets; a radio that provides an air interface to a mobile ad hoc network including links to a plurality of neighboring nodes; and a signal processor that prepares the scheduled packets for transmission over the air interface.
- FIG. 1 is a block diagram of a Mobile Ad Hoc Network (MANET).
- MANET Mobile Ad Hoc Network
- 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 shows a queue architecture 400 that may be used with a nested weighted round robin queuing system.
- FIG. 5 shows a scheduling algorithm for use with the queue structure of FIG. 4 .
- FIG. 6 shows a queue structure containing packets in various queues.
- FIG. 7 shows a scheduling sequence for the queues of FIG. 6 .
- a prioritized nested weighted round robin queuing mechanism used to meter data output from a node of a Mobile Ad Hoc Network (MANET).
- Use of a prioritized queue helps to meet strict Quality of Service requirements, while nested weighted round robin queues provide multilayer metered access capable of skewing user data to meet various user and system requirements, such as traffic differentiated according to service types as described in the Internet Engineering Task Force (IETF) Request For Comment (RFC) 2475, incorporated herein by reference in its entirety.
- IETF Internet Engineering Task Force
- RRC Request For Comment
- 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.
- 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.
- 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 Internet Protocol or similar, well-established networking protocols.
- a Mobile Ad Hoc Network is an ad hoc wireless network in which some (or all) of the participating devices—also referred to herein as “nodes”—are mobile.
- 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.
- 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.
- 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 .
- a core network 110 such as the Internet
- subscriber devices 110 all generally interconnected as shown in FIG. 1 .
- 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.
- 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 .
- 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.
- 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.
- subscriber devices may include a GPS receiver providing a position and timing reference.
- 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 .
- the access points 104 may employ identical network functionality and protocol stacks as subscriber devices 102 .
- an access point 104 may have a number of differences related to their dedicated function within the MANET 100 .
- 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.
- 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.
- 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.
- 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.
- a backhaul access point 108 may have a wireless radio interface, protocol stack(s) and other components of other nodes within the MANET 100 .
- 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.
- the fiber access point may include a Gig-E router site or an OC-3/12 add-drop multiplexer site.
- 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 .
- a single backhaul access point 108 may serve a single access point 104 .
- 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.
- 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 .
- 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 .
- 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.
- any of the foregoing devices 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.
- 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 .
- 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.
- 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 .
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- a low power radio 308 may be employed, such as where the node 300 is a battery-powered mobile device.
- 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.
- 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.
- the node 300 may include multiple prioritized queues to assist in providing various service levels, such as for QoS traffic.
- 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 .
- 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.
- delay-sensitive e.g. voice
- QoS quality of service
- 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.
- 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.
- 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 .
- 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.
- the node 300 may receive output bandwidth from each one-hop neighbor.
- 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.
- the node 300 (and every other node in the MANET) may calculate a node weight that represents relative output requirements for the node 300 .
- the node weight, W may be calculated as:
- the node 300 may transmit the node weight to each neighboring node, and may in turn receive a node weight from each neighboring node.
- 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.
- the data link 304 may transmit data whenever a change is detected in the MANET such as an addition or deletion of a node.
- the neighborhood information 314 may include position data in order to support location-based routing and the like.
- GPS Global Positioning System
- FIG. 4 shows a queue architecture 400 that may be used with a prioritized nested weighted round robin queuing system.
- the queue architecture 400 may be deployed, for example, in the data queue(s) 310 of FIG. 3 .
- the queue architecture 400 may include a packet in-flow counter 402 , a packet overflow counter 404 , a queue depth meter 406 , priority queues and weighted round robin queues 410 .
- the queue structure 400 may be stored in a volatile or non-volatile memory using any suitable list, ordered list, buffer, index, or other memory structure suitable for storing queues of data, along with code or other mechanisms for adding and removing data from queues 412 , counting packet flow in and out, measuring queue depth, and so forth.
- each queue 412 operates as a first-in-first-out buffer for packets that are to be transmitted from the node described above.
- the packet in-flow counter 402 , packet overflow counter 404 , and queue depth meter 406 may be used to monitor performance of the queues 408 , 410 , and where appropriate, may provide feedback to adjust weights of the WRR queues 410 in order to adjust scheduling of packets according to traffic conditions.
- the packet in-flow counter 402 may count packets as they arrive for queuing, and may provide aggregate counts and/or queue-specific counts.
- the packet overflow counter 404 may count packets that were dropped by the queues due to aging, buffer overflow, or the like.
- the queue depth meter 406 may provide a depth for each queue, and may be updated continuously as packets are added to, delivered from, or overflowed out of the queues.
- Packet sources 414 may include any sources of data within the node, such as application software executing on the node or data received at the node for relay to another node in the MANET.
- packet sources 414 may feed the queues using explicit or implicit prioritization data including without limitation traffic types or other prioritization, transmit mode, or link quality data tagged to data from the packet sources 414 , or associated with links of the air interface that will be used to transmit the data.
- the packets sources 414 may include traffic with QoS levels, Voice-Over-IP traffic, streaming video, and the like. Traffic may be identified using IETF RFC 2475 DiffServ Code Points (DSCPs) such as Expedited Forwarding, Assured Delivery and Best Efforts. Each class of traffic may be further divided into sub-types for prioritization within the class. More generally, any explicit or implicit prioritization scheme may be employed, and however such traffic is categorized, a suitable delivery mechanism may be deployed using the systems and methods described herein.
- DSCPs D
- a queue server 414 may operate to serve the queues 412 by selecting data from the queues 412 according to a scheduling algorithm, and scheduling the data for transmission over an air interface of the node, such as in a time slot of a Time Division Multiple Access system.
- the priority queues 408 if any, will receive immediate and complete service from the queue server 414 , so that any data placed in these queues 412 will be immediately scheduled for transmission.
- the priority queues 408 may be prioritized to provide multiple priority levels to this preemptive service. Thus a priority 1 or “High” priority queue will always be immediately serviced. A priority 2 or “Medium” priority queue will always be immediately serviced unless there is priority 1 data.
- the weighted round robin (WRR) queues 410 may include any number of data queues. As depicted, the WRR queues 410 include three queues (Q 1 -Q 3 ), one of which is a nested WRR queue including three additional queues (Q 4 -Q 6 ). Each WRR queue 410 has a weight associated with it, as indicated in parenthesis below the queue label (e.g., Q 1 has a weight of 6, Q 2 has a weight of 3, etc.).
- the queue server 416 controls the manner in which data is removed from these various queues and scheduled for delivery, as described in more detail below.
- FIG. 5 shows a scheduling algorithm for use with the queue structure of FIG. 4 .
- the packet may be placed into a time slot or otherwise scheduled for transmission in order of selection.
- the process 500 described herein may be employed more generally with data of varying lengths and types without departing from the scope of this disclosure.
- the process 500 may begin 502 by determining whether there is priority data in a preemptive priority queue as shown in step 504 .
- a packet may be selected from the priority queues and the process may return to step 504 where the priority queues are again checked for data. Steps 504 and 506 may be repeated until the priority queues are empty.
- a single preemptive priority queue may be employed.
- a number of preemptive queues may be employed, which may be relatively prioritized so that one of the preemptive queues having a highest priority is emptied first, followed in order by any preemptive queues of decreasing priority.
- the process 500 may continue to determine if it is time to serve a nested WRR queue.
- a weighted round robin schedule generally serves a WRR queue according to queue weight.
- one of the queues refers to a nested WRR queue which has its own queue schedule, but is accessed only periodically when the non-nested WRR queue reaches the nested queue in its own schedule.
- the process 500 may proceed to step 510 where a packet is selected from the WRR queue according to a WRR schedule, and then return to step 504 where priority data (if any) is once again given preemptive attention.
- the process 500 may proceed to step 512 where a packet is selected from the nested WRR queue according to the nested WRR schedule.
- the process 500 may then return to step 504 where priority data (if any) is given preemptive attention.
- the nested WRR queue schedule may restart at its beginning each time it is served by the non-nested WRR.
- the sequence of the nested WRR queue may be preserved between requests, so that each time the non-nested WRR queue returns to the nested WRR queue, the nested WRR queue may pick up where it left of in its sequence.
- the non-nested WRR queue may either reset or continue each time it is pre-empted by priority data.
- the prioritized queues may be implemented asynchronously and separately from the WRR queues. In such embodiments, a preemptive queue may operate continuously, and may pause and pre-empt the WRR queue(s) whenever priority data is present.
- FIG. 6 shows a queue structure 600 containing packets in various queues.
- the queue structure contains the following packets:
- FIG. 7 illustrates a scheduling sequence for the queues of FIG. 6 .
- the sequence 700 is presented as a first timeline 702 , a second timeline 704 , and a third timeline 706 , which collectively illustrate a sequence of packets served from the queue structure of FIG. 6 .
- a first timeline 702 representing eighteen serially scheduled packets
- PR 1 the number of packets served from the queue structure of FIG. 6 .
- PR 2 the remaining queues may be served in weighted round robin fashion. This begins with a packet from Q 1 as shown in the first timeline 602 .
- scheduling may proceed to serve queues Q 1 , Q 2 , and Q 3 (nest) in round robin fashion according to queue weights. With weights of 6, 3, and 1 respectively, a weighted round robin will serve Q 1 six times, Q 2 three times, and Q 3 once over every ten packet selections.
- the order may vary in any fashion provided the result is a correspondingly weighted service of the queues. As illustrated, six consecutive packets are selected from Q 1 , beginning with the last packet in the first timeline 702 , and concluding with the first five packets in the second timeline 704 . In weighted round robin fashion, three packets may then be selected from Q 2 .
- the nested WRR queues are served in proportion to their weight in the (non-nested) WRR queues. That is, with a weight of 1, the nested WRR queues are served once for each cycle of the WRR queues. As illustrated, this results in a selection of one packet from one of the nested WRR queues (Q 4 in this example), followed by a return to the non-nested WRR queuing.
- the nesting is denoted in the timelines 702 , 704 , 706 by use of parenthesis in the WRR queue that signify the nesting point, with the actual selected packet shown in the corresponding time slot for the nested WRR queues.
- Q 1 , Q 2 , and Q 3 are once again served according to weight.
- the three remaining packets in Q 1 are scheduled, followed by three of the Q 2 packets, followed by one reference to the nested WRR queues.
- the remaining packets for delivery are in the nested WRR queue, which may then proceed to serve packets from Q 4 , Q 5 , and Q 6 in weighted fashion. As shown in FIG. 6 , these weights are 5, 3, and 1 respectively.
- the nested WRR continues to serve packets from the queue structure according to the respective weights of Q 4 (5) and Q 6 (1). Accordingly, the remaining 2 packets are delivered from Q 4 , followed by the remaining 4 packets from Q 6 . At this point, all of the queues are empty, and no further scheduling will occur until further data is provided to the queue structure.
- nesting round robin queues may be readily extended to accommodate multiple layers of nesting such as a top level WRR queue that contains a first nested WRR queue, with at least one additional nested WRR queue that is nested within the first nested WRR queue.
- the structure may also be extended by providing multiple groups of WRR queues at each level of nesting.
- a WRR queue may include a first queue having a weight of 7, a second queue having a weight of 3, a first nested WRR queue having a weight of 4, and a second nested WRR queue having a weight of 2.
- multilayer scheduling may be provided in order to achieve various service levels or other routing and network objectives.
- the general approach described above may be adapted for use with directional antennas by using destination-based queuing instead of, or in addition to, traffic type(s).
- the queues may be explicitly tied to certain traffic types, and weights may be periodically adjusted for these traffic types according to queue depth.
- weights may be periodically adjusted according to node weights (described above) to improve the chances of meeting various service level commitments for traffic.
- transitions between prioritized queues, WRR queues, and nested WRR queues may be managed in a number of fashions including restarting each group of queues each time it is accessed, or returning to a point in the schedule for that group of queues where a last access or service was made.
- 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.
- ASICs application specific integrated circuits
- any combination of the above circuits and components may be suitably adapted to use with the systems described herein.
- 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.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
In a Mobile Ad Hoc Network (MANET), nested weighted round robin queues are employed to selectively provide channel access for traffic according to a priority or Quality of Service (QoS) for data. By nesting queues within other queues, and applying a weighted round robin technique to serve each queue, relatively arbitrary service metrics may be achieved including nodal QoS for class-based traffic, avoidance of queue starvation, and so forth. Prioritized queues may also be provided for preemptive delivery of high priority traffic.
Description
- 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.
- 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.
- This application relates to queuing data for transmission in a Mobile Ad Hoc Network (MANET), and more particularly to queuing prioritized data according to a weighted nested round robin queue. There remains a need for improved handling of multiple traffic types in a wireless ad hoc network.
- In a Mobile Ad Hoc Network (MANET), nested weighted round robin queues are employed to selectively provide channel access for traffic according to a priority or Quality of Service (QoS) for data. By nesting queues within other queues, and applying a weighted round robin technique to serve each queue, relatively arbitrary service metrics may be achieved including nodal QoS for class-based traffic, avoidance of queue starvation, and so forth. Prioritized queues may also be provided for preemptive delivery of high priority traffic.
- In one aspect, there is disclosed herein a method that includes storing a plurality of data packets in a plurality of queues for transmission in a number of time slots from a node of a mobile ad hoc network, each one of the plurality of queues having a weight; selecting a first data packet from the plurality of data packets for transmission in one of the number of time slots according to a first weighted round robin schedule that is weighted to serve a first group of the plurality of queues according to their respective weights; and selecting a second data packet from the plurality of data packets according to a second weighted round robin schedule that is weighted to serve a second group of the plurality of queues according to their respective weights, wherein the first weighted round robin schedule includes a weight for the second round robin schedule and periodically serves the second weighted round robin schedule according to the weight, thereby selecting the second data packet in the first weighted round robin schedule for transmission in one of the number of time slots. The method may include preemptively selecting data packets from a prioritized queue until the prioritized queue is empty.
- In another aspect, a computer program product disclosed herein include computer executable code that, when executing on one or more computing devices, performs the steps of: storing a plurality of data packets in a plurality of queues for transmission in a number of time slots from a node of a mobile ad hoc network, each one of the plurality of queues having a weight; selecting a first data packet from the plurality of data packets for transmission in one of the number of time slots according to a first weighted round robin schedule that is weighted to serve a first group of the plurality of queues according to their respective weights; and selecting a second data packet from the plurality of data packets according to a second weighted round robin schedule that is weighted to serve a second group of the plurality of queues according to their respective weights, wherein the first weighted round robin schedule includes a weight for the second round robin schedule and periodically serves the second weighted round robin schedule according to the weight, thereby selecting the second data packet in the first weighted round robin schedule for transmission in one of the number of time slots.
- In another aspect, a device disclosed herein includes a data source that provides a plurality of data packets; a queue that schedules the plurality of data packets for transmission according to a weighted round robin, the weighted round robin including at least one weight for a nested weighted round robin queue, the nested weighted round robin queue served according to its weight in the weighted round robin, thereby providing scheduled packets; a radio that provides an air interface to a mobile ad hoc network including links to a plurality of neighboring nodes; and a signal processor that prepares the scheduled packets for transmission over the air interface.
- 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 shows aqueue architecture 400 that may be used with a nested weighted round robin queuing system. -
FIG. 5 shows a scheduling algorithm for use with the queue structure ofFIG. 4 . -
FIG. 6 shows a queue structure containing packets in various queues. -
FIG. 7 shows a scheduling sequence for the queues ofFIG. 6 . - The following description details certain embodiments of a prioritized nested weighted round robin queuing mechanism used to meter data output from a node of a Mobile Ad Hoc Network (MANET). Use of a prioritized queue helps to meet strict Quality of Service requirements, while nested weighted round robin queues provide multilayer metered access capable of skewing user data to meet various user and system requirements, such as traffic differentiated according to service types as described in the Internet Engineering Task Force (IETF) Request For Comment (RFC) 2475, incorporated herein by reference in its entirety. While the invention is described below in relation to MANETs, it will be understood that the principles of the invention may be suitably applied in any environment where multiple traffic types are managed within 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 Internet Protocol 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 includesubscriber devices 102,access points 104, and backhaul access points 108 (for coupling to acore network 110 such as the Internet), andsubscriber devices 110, all generally interconnected as shown inFIG. 1 . Without limiting the generality of the foregoing, one or more of thesubscriber devices 102 may be astationary device 112 that does not move within theMANET 100. It will be understood that the device-to-device links illustrated inFIG. 1 are for purposes of illustration only, and in no way are intended to limit the nature or number of links between devices in theMANET 100, which may be created, removed, and/or modified over time according to any corresponding protocols followed by the devices within theMANET 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 thebackhaul access point 108 and thecore 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 theMANET 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 whilesubscriber devices 102 may include terminal nodes that send or receive data, in aMANET 100 as described hereinsubscriber devices 102 may also suitably be employed as intermediate nodes to route traffic to and fromother subscriber devices 102. Thus an ad hoc network as described herein is generally extensible, and asnew subscriber devices 102 appear within theMANET 100, they may form a part of theMANET 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 insubscriber devices 102 within the MANET 100 in order to use well-established addressing schemes and the like. Asubscriber 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, eachsubscriber device 102 may be authenticated and/or authorized before being granted access to theMANET 100. - Access points 104 may be provided to establish a permanent or otherwise generally stable infrastructure to the
MANET 100. In one embodiment, theaccess points 104 may employ identical network functionality and protocol stacks assubscriber devices 102. However, anaccess point 104 may have a number of differences related to their dedicated function within theMANET 100. In one aspect, theaccess points 104 may have no associated computing device that originates or consumes network traffic. That is, theaccess points 104 may simply form a fixed mesh of participants in theMANET 100 and relay traffic among other network participants. Anaccess 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 wheresubscriber 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 theaccess 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 thewireless access points 104 may have a greater transmit power and/or a greater antenna gain thanmobile subscriber devices 102, thus providing greater physical coverage than some other devices within theMANET 100. - The
MANET 100 may include one or morebackhaul access points 108 that generally operate to connect nodes within theMANET 100 to acore network 110 such as the Internet. On one interface, abackhaul access point 108 may have a wireless radio interface, protocol stack(s) and other components of other nodes within theMANET 100. On another interface, thebackhaul access point 108 may provide any suitable interface to thecore network 110. Thebackhaul 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 thebackhaul 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 abackhaul access point 108 as described herein. - A
backhaul access point 108 may servemultiple access points 104 within theMANET 100, and may distribute network load across those access points 104. Alternatively, a singlebackhaul access point 108 may serve asingle access point 104. In some embodiments, the number ofaccess points 104 served by abackhaul 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 betweenbackhaul access points 108 andaccess points 104 may change from time to time depending on the presence ofother subscriber devices 102 within the area, network conditions, and so forth. In some cases anaccess 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 theMANET 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 thecore 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 anysubscriber device 102 that, for whatever reason, does not physically move within theMANET 100. In general, such fixed physical points within theMANET 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 theMANET 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 theMANET 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 thatnon-MANET 100 equipment can participate in theMANET 100 through the device. It will also be appreciated that, while a connection toother 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 amongsubscriber devices 102. -
FIG. 2 is a block diagram of a MANET having multiple backhaul access points. In general, theMANET 100 may include subscriber devices 102 (not shown),access points 104, andbackhaul access points 108 for connecting tocore networks 110, and anedge router 202 that facilitates routing between theMANET 100 and the core networks 110. - The
edge router 202 may include any devices or systems for maintaining connectivity between theMANET 100 and thecore networks 110, and may further support or enhance network activity within theMANET 100. For example, theedge 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 theedge router 202, or may be provided as separate (physical and/or logical) systems that support operation of theedge router 202. These supporting systems may in general support operations such as broadband Internet connectivity within theMANET 100 and the like, broadcast communications crossing between theMANET 100 and thecore networks 110, and so forth, as well as the use of multiplebackhaul access points 108 to efficiently route inter-MANET traffic amongsubscriber 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 asubscriber device 102,access point 104, or backhaul access point. In general thenode 300 may includedata sources 302, adata link 304, asignal processor 306, aradio 308,data queues 310, routinginformation 312, andneighborhood 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 inFIG. 3 . - The
data sources 302 may include any applications or other hardware and/or software associated with thenode 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 adata source 302 in thenode 300. It will be further understood that some nodes such asaccess points 104 may not haveindependent data sources 302, and may function exclusively asMANET 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 thenode 300, in a MANET. It will be understood that the data link 304 inFIG. 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 thenode 300, such as in an IP stack executing on thedata source 302, or in firmware within thesignal processor 306 orradio 308, or in additional functional blocks not depicted inFIG. 3 . For example, routing protocols may be implemented within hardware/software of the data link 304 in order to ensure that nodes in theMANET 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 thenode 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 thenode 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, thesignal 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 thedata 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. Theradio 308 may include any radio frequency analog circuitry and the like, and may be coupled to thesignal processor 306 which converts data and control information between a digital representation used within thenode 300, and an analog representation used in radio frequency communications with other nodes. In embodiments, alow power radio 308 may be employed, such as where thenode 300 is a battery-powered mobile device. In other embodiments, a high-power radio 308 may be employed, such as where thenode 300 is an access point or backhaul access point connected to a fixed power infrastructure. In an embodiment, theradio 308 andsignal 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 thedata sources 302, data that is relayed by thenode 300 from other nodes in the MANET, and/or control information scheduled for transmission within data packets from thenode 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, thenode 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 thedata link 304,signal processor 306, andradio 308 for transmission within the MANET. - Routing
information 312 such as a routing or forwarding table may be provided to support routing functions by thenode 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 thenode 300. Theneighborhood 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 thenode 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 theradio 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 thedata link 304. For example, thenode 300 may determine output bandwidth (i.e., data transmit requirements) for each link that thenode 300 has with a neighbor, and may transmit this to one-hop neighbors. Similarly, thenode 300 may receive output bandwidth from each one-hop neighbor. Using this data, eachnode 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 thenode 300. For example, the node weight, W, may be calculated as: -
- 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 thenode 300. Finally, thenode 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 withother 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 theneighborhood information 314 may be controlled, for example, by thedata link 304, which may apply any suitable technique to determine when to share information with one hop neighbors. In one aspect, thedata 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 prioritized nested weighted round robin queuing as described herein, the description now turns to a more detailed treatment of embodiments of a queuing mechanism.
-
FIG. 4 shows aqueue architecture 400 that may be used with a prioritized nested weighted round robin queuing system. Thequeue architecture 400 may be deployed, for example, in the data queue(s) 310 ofFIG. 3 . Thequeue architecture 400 may include a packet in-flow counter 402, apacket overflow counter 404, a queue depth meter 406, priority queues and weightedround robin queues 410. Thequeue structure 400 may be stored in a volatile or non-volatile memory using any suitable list, ordered list, buffer, index, or other memory structure suitable for storing queues of data, along with code or other mechanisms for adding and removing data fromqueues 412, counting packet flow in and out, measuring queue depth, and so forth. In general, eachqueue 412 operates as a first-in-first-out buffer for packets that are to be transmitted from the node described above. - The packet in-
flow counter 402,packet overflow counter 404, and queue depth meter 406 may be used to monitor performance of the 408, 410, and where appropriate, may provide feedback to adjust weights of thequeues WRR queues 410 in order to adjust scheduling of packets according to traffic conditions. For example, the packet in-flow counter 402 may count packets as they arrive for queuing, and may provide aggregate counts and/or queue-specific counts. Thepacket overflow counter 404 may count packets that were dropped by the queues due to aging, buffer overflow, or the like. The queue depth meter 406 may provide a depth for each queue, and may be updated continuously as packets are added to, delivered from, or overflowed out of the queues. -
Packet sources 414 may include any sources of data within the node, such as application software executing on the node or data received at the node for relay to another node in the MANET. In general,packet sources 414 may feed the queues using explicit or implicit prioritization data including without limitation traffic types or other prioritization, transmit mode, or link quality data tagged to data from thepacket sources 414, or associated with links of the air interface that will be used to transmit the data. In one embodiment, thepackets sources 414 may include traffic with QoS levels, Voice-Over-IP traffic, streaming video, and the like. Traffic may be identified using IETF RFC 2475 DiffServ Code Points (DSCPs) such as Expedited Forwarding, Assured Delivery and Best Efforts. Each class of traffic may be further divided into sub-types for prioritization within the class. More generally, any explicit or implicit prioritization scheme may be employed, and however such traffic is categorized, a suitable delivery mechanism may be deployed using the systems and methods described herein. - A
queue server 414 may operate to serve thequeues 412 by selecting data from thequeues 412 according to a scheduling algorithm, and scheduling the data for transmission over an air interface of the node, such as in a time slot of a Time Division Multiple Access system. In general, thepriority queues 408, if any, will receive immediate and complete service from thequeue server 414, so that any data placed in thesequeues 412 will be immediately scheduled for transmission. Thepriority queues 408 may be prioritized to provide multiple priority levels to this preemptive service. Thus apriority 1 or “High” priority queue will always be immediately serviced. Apriority 2 or “Medium” priority queue will always be immediately serviced unless there ispriority 1 data. Apriority 3 or “Low” priority queue will always be immediately serviced unless there ispriority 1 and/orpriority 2 data. In embodiments, there may be no prioritized queues, and the nested weighted round robin queuing may be used exclusively to schedule data. The weighted round robin (WRR)queues 410 may include any number of data queues. As depicted, theWRR queues 410 include three queues (Q1-Q3), one of which is a nested WRR queue including three additional queues (Q4-Q6). EachWRR queue 410 has a weight associated with it, as indicated in parenthesis below the queue label (e.g., Q1 has a weight of 6, Q2 has a weight of 3, etc.). Thequeue server 416 controls the manner in which data is removed from these various queues and scheduled for delivery, as described in more detail below. -
FIG. 5 shows a scheduling algorithm for use with the queue structure ofFIG. 4 . Although not explicitly depicted inFIG. 5 , it will be understood that each time a packet is “selected”, the packet may be placed into a time slot or otherwise scheduled for transmission in order of selection. It will further be understood that while the following description refers to packets, theprocess 500 described herein may be employed more generally with data of varying lengths and types without departing from the scope of this disclosure. Theprocess 500 may begin 502 by determining whether there is priority data in a preemptive priority queue as shown instep 504. - As shown in
step 506, if there is data in one of the priority queues, then a packet may be selected from the priority queues and the process may return to step 504 where the priority queues are again checked for data. 504 and 506 may be repeated until the priority queues are empty. In one embodiment, a single preemptive priority queue may be employed. In another embodiment, a number of preemptive queues may be employed, which may be relatively prioritized so that one of the preemptive queues having a highest priority is emptied first, followed in order by any preemptive queues of decreasing priority.Steps - As shown in
step 508, if there is no priority data, theprocess 500 may continue to determine if it is time to serve a nested WRR queue. A weighted round robin schedule generally serves a WRR queue according to queue weight. However, in a nested WRR, one of the queues refers to a nested WRR queue which has its own queue schedule, but is accessed only periodically when the non-nested WRR queue reaches the nested queue in its own schedule. Thus if it is not time to serve the nested queue, theprocess 500 may proceed to step 510 where a packet is selected from the WRR queue according to a WRR schedule, and then return to step 504 where priority data (if any) is once again given preemptive attention. If it is time to serve a nested WRR—i.e., the nested queues are the current queue in the non-nested WRR schedule—then theprocess 500 may proceed to step 512 where a packet is selected from the nested WRR queue according to the nested WRR schedule. Theprocess 500 may then return to step 504 where priority data (if any) is given preemptive attention. - It will be understood that the above illustration is provided by way of illustration and not limitation, and that numerous additions, deletions, or modifications to the steps above may be made without departing from the generality of this disclosure. For example, in one embodiment the nested WRR queue schedule may restart at its beginning each time it is served by the non-nested WRR. In another embodiment, the sequence of the nested WRR queue may be preserved between requests, so that each time the non-nested WRR queue returns to the nested WRR queue, the nested WRR queue may pick up where it left of in its sequence. Similarly, the non-nested WRR queue may either reset or continue each time it is pre-empted by priority data. As another example, the prioritized queues may be implemented asynchronously and separately from the WRR queues. In such embodiments, a preemptive queue may operate continuously, and may pause and pre-empt the WRR queue(s) whenever priority data is present.
- A detailed example is now provided of dequeuing data according to a prioritized nested weighted round robin scheduling mechanism.
-
FIG. 6 shows aqueue structure 600 containing packets in various queues. In particular, the queue structure contains the following packets: - 10 packets in a high priority queue, PR1,
- 7 packets in a low priority queue, PR3,
- 9 packets in a first WRR queue, Q1,
- 7 packets in a second WRR queue, Q2,
- 7 packets in a nested WRR queue, Q4,
- 2 packets in a nested WRR queue, Q5, and
- 5 packets in a nested WRR queue, Q6.
-
FIG. 7 illustrates a scheduling sequence for the queues ofFIG. 6 . Thesequence 700 is presented as afirst timeline 702, asecond timeline 704, and athird timeline 706, which collectively illustrate a sequence of packets served from the queue structure ofFIG. 6 . In afirst timeline 702 representing eighteen serially scheduled packets, it can be seen that initially all ten packets in PR1 are pre-emptively scheduled. Second, all seven packets in the lower priority queue, PR2 are pre-emptively scheduled. After the preemptive data has been scheduled, the remaining queues may be served in weighted round robin fashion. This begins with a packet from Q1 as shown in the first timeline 602. - As shown in the
second timeline 704, scheduling may proceed to serve queues Q1, Q2, and Q3 (nest) in round robin fashion according to queue weights. With weights of 6, 3, and 1 respectively, a weighted round robin will serve Q1 six times, Q2 three times, and Q3 once over every ten packet selections. In a weighted round robin schedule, the order may vary in any fashion provided the result is a correspondingly weighted service of the queues. As illustrated, six consecutive packets are selected from Q1, beginning with the last packet in thefirst timeline 702, and concluding with the first five packets in thesecond timeline 704. In weighted round robin fashion, three packets may then be selected from Q2. At this point, the nested WRR queues are served in proportion to their weight in the (non-nested) WRR queues. That is, with a weight of 1, the nested WRR queues are served once for each cycle of the WRR queues. As illustrated, this results in a selection of one packet from one of the nested WRR queues (Q4 in this example), followed by a return to the non-nested WRR queuing. The nesting is denoted in the 702, 704, 706 by use of parenthesis in the WRR queue that signify the nesting point, with the actual selected packet shown in the corresponding time slot for the nested WRR queues.timelines - At this point, there are no remaining priority packets, and the following packets in the WRR queues:
- 3 packets in a first WRR queue, Q1,
- 4 packets in a second WRR queue, Q2,
- 6 packets in a nested WRR queue, Q4,
- 2 packets in a nested WRR queue, Q5, and
- 5 packets in a nested WRR queue, Q6.
- Returning to the non-nested WRR queues, Q1, Q2, and Q3 are once again served according to weight. Thus the three remaining packets in Q1 are scheduled, followed by three of the Q2 packets, followed by one reference to the nested WRR queues. Returning again to the top of the non-nested WRR schedule, only one packet remains in the non-nested queues, which packet is scheduled immediately for delivery. In the balance of the
second timeline 704, all of the remaining packets for delivery are in the nested WRR queue, which may then proceed to serve packets from Q4, Q5, and Q6 in weighted fashion. As shown inFIG. 6 , these weights are 5, 3, and 1 respectively. Thus, having already provided two packets from Q4, three additional packets may then be served from this queue as shown in the last time slot of thesecond timeline 704 and the first two time slots of thethird timeline 706. Next, three packets may be served from Q5. However, only two packets remain, so these are served in sequence to empty queue Q5. Finally, one packet from Q6 may be served. At this point, the following packets remain for delivery from the queue structure: - 2 packets in a nested WRR queue, Q4, and
- 4 packets in a nested WRR queue, Q6.
- At this point, the nested WRR continues to serve packets from the queue structure according to the respective weights of Q4 (5) and Q6 (1). Accordingly, the remaining 2 packets are delivered from Q4, followed by the remaining 4 packets from Q6. At this point, all of the queues are empty, and no further scheduling will occur until further data is provided to the queue structure.
- It will appreciated that the general notion of nesting round robin queues may be readily extended to accommodate multiple layers of nesting such as a top level WRR queue that contains a first nested WRR queue, with at least one additional nested WRR queue that is nested within the first nested WRR queue. The structure may also be extended by providing multiple groups of WRR queues at each level of nesting. Thus for example, a WRR queue may include a first queue having a weight of 7, a second queue having a weight of 3, a first nested WRR queue having a weight of 4, and a second nested WRR queue having a weight of 2. In this embodiment the first nested WRR queue will be accessed twice as often as the second nested WRR queue, and packets in the nested WRR queues will collectively receive (2+4=) 6 out of every (7+3+4+2=) 16 time slots, while scheduling within each nested queue may be arbitrarily established by weighting the queues therein. Thus as a general matter, relatively arbitrary, multilayer scheduling may be provided in order to achieve various service levels or other routing and network objectives.
- Other variations and enhancements to the foregoing may also be provided. For example, the general approach described above may be adapted for use with directional antennas by using destination-based queuing instead of, or in addition to, traffic type(s). In other embodiments, the queues may be explicitly tied to certain traffic types, and weights may be periodically adjusted for these traffic types according to queue depth. In other embodiments, weights may be periodically adjusted according to node weights (described above) to improve the chances of meeting various service level commitments for traffic. Also as noted above, transitions between prioritized queues, WRR queues, and nested WRR queues may be managed in a number of fashions including restarting each group of queues each time it is accessed, or returning to a point in the schedule for that group of queues where a last access or service was made.
- 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 (20)
1. A method comprising:
storing a plurality of data packets in a plurality of queues for transmission in a number of time slots from a node of a mobile ad hoc network, each one of the plurality of queues having a weight;
selecting a first data packet from the plurality of data packets for transmission in one of the number of time slots according to a first weighted round robin schedule that is weighted to serve a first group of the plurality of queues according to their respective weights; and
selecting a second data packet from the plurality of data packets according to a second weighted round robin schedule that is weighted to serve a second group of the plurality of queues according to their respective weights, wherein the first weighted round robin schedule includes a weight for the second round robin schedule and periodically serves the second weighted round robin schedule according to the weight, thereby selecting the second data packet in the first weighted round robin schedule for transmission in one of the number of time slots.
2. The method of claim 1 further comprising preemptively selecting data packets from a prioritized queue until the prioritized queue is empty.
3. The method of claim 2 further comprising:
providing a plurality of prioritized queues, each one of the prioritized queues having a priority; and
preemptively selecting data packets from the plurality of prioritized queues according to the priority until each one of the prioritized queues is empty.
4. The method of claim 2 further comprising assigning a Quality of Service level to the prioritized queue, whereby data having the corresponding Quality of Service is placed into the prioritized queue and preemptively scheduled for transmission.
5. The method of claim 1 further comprising assigning a weight to at least one of the plurality of queues according to a Quality of Service level for that queue.
6. The method of claim 1 wherein at least one of the second group of the plurality of queues has a lowest priority of the plurality of queues.
7. The method of claim 1 wherein the second group of the plurality of queues includes at least one best-efforts queue for which delivery is not assured.
8. The method of claim 1 wherein the weight used by the first weighted round robin schedule to serve the second weighted round robin schedule is a lowest one of the weights used by the first weighted round robin schedule.
9. The method of claim 1 wherein the first weighted round robin schedule serves a plurality of additional weighted round robin schedules.
10. The method of claim 1 wherein the second weighted round robin schedule serves a third weighted round robin schedule.
11. The method of claim 1 further comprising adjusting one or more weights for the first weighted round robin schedule according to a queue depth for one or more of the first group of the plurality of queues.
12. The method of claim 1 further comprising adjusting one or more weights for the second weighted round robin schedule according to a queue depth for one or more weights of the second group of the plurality of queues.
13. The method of claim 1 further comprising filling at least one of the number of time slots with data from a current one of the queues before moving to a next queue in the weighted round robin schedule.
14. A computer program product comprising computer executable code that, when executing on one or more computing devices, performs the steps of:
storing a plurality of data packets in a plurality of queues for transmission in a number of time slots from a node of a mobile ad hoc network, each one of the plurality of queues having a weight;
selecting a first data packet from the plurality of data packets for transmission in one of the number of time slots according to a first weighted round robin schedule that is weighted to serve a first group of the plurality of queues according to their respective weights; and
selecting a second data packet from the plurality of data packets according to a second weighted round robin schedule that is weighted to serve a second group of the plurality of queues according to their respective weights, wherein the first weighted round robin schedule includes a weight for the second round robin schedule and periodically serves the second weighted round robin schedule according to the weight, thereby selecting the second data packet in the first weighted round robin schedule for transmission in one of the number of time slots.
15. The computer program product of claim 14 further comprising computer executable code that performs the step of providing a prioritized queue and preemptively selecting data packets from the prioritized queue until the prioritized queue is empty.
16. The computer program product of claim 15 further comprising computer executable code that performs the steps of:
providing a plurality of prioritized queues, each one of the prioritized queues having a priority; and
preemptively selecting data packets from the plurality of prioritized queues according to the priority until each one of the prioritized queues is empty.
17. The computer program product of claim 15 further comprising computer executable code that performs the step of assigning a Quality of Service level to the prioritized queue, whereby data having the corresponding Quality of Service is placed into the prioritized queue and preemptively scheduled for transmission.
18. The computer program product of claim 14 further comprising computer executable code that performs the step of assigning a weight to at least one of the plurality of queues according to a Quality of Service level for that queue.
19. The computer program product of claim 14 wherein at least one of the second group of the plurality of queues has a lowest priority of the plurality of queues.
20. A device comprising:
a data source that provides a plurality of data packets;
a queue that schedules the plurality of data packets for transmission according to a weighted round robin, the weighted round robin including at least one weight for a nested weighted round robin queue, the nested weighted round robin queue served according to its weight in the weighted round robin, thereby providing scheduled packets;
a radio that provides an air interface to a mobile ad hoc network including links to a plurality of neighboring nodes; and
a signal processor that prepares the scheduled packets for transmission over the air interface.
Priority Applications (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US12/242,697 US20090122766A1 (en) | 2007-10-01 | 2008-09-30 | Nested weighted round robin queuing |
| MX2010003539A MX2010003539A (en) | 2007-10-01 | 2008-10-01 | AD HOC MOBILE NETWORK SYSTEMS AND METHODS. |
| PCT/US2008/078501 WO2009046143A2 (en) | 2007-10-01 | 2008-10-01 | Mobile ad hoc networking systems and methods |
| EP08835939A EP2201725B1 (en) | 2007-10-01 | 2008-10-01 | Mobile ad hoc networking systems and methods |
| CA2739458A CA2739458A1 (en) | 2007-10-01 | 2008-10-01 | Mobile ad hoc networking systems and methods |
Applications Claiming Priority (7)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US97674007P | 2007-10-01 | 2007-10-01 | |
| US97674407P | 2007-10-01 | 2007-10-01 | |
| US97674707P | 2007-10-01 | 2007-10-01 | |
| US97673507P | 2007-10-01 | 2007-10-01 | |
| US97674807P | 2007-10-01 | 2007-10-01 | |
| US97673007P | 2007-10-01 | 2007-10-01 | |
| US12/242,697 US20090122766A1 (en) | 2007-10-01 | 2008-09-30 | Nested weighted round robin queuing |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| US20090122766A1 true US20090122766A1 (en) | 2009-05-14 |
Family
ID=40587996
Family Applications (4)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US12/242,597 Abandoned US20090122753A1 (en) | 2007-10-01 | 2008-09-30 | Dynamic data link segmentation and reassembly |
| US12/242,697 Abandoned US20090122766A1 (en) | 2007-10-01 | 2008-09-30 | Nested weighted round robin queuing |
| US12/242,747 Active US7948966B2 (en) | 2007-10-01 | 2008-09-30 | Multi-metric routing calculations |
| US13/098,420 Abandoned US20130107726A1 (en) | 2007-10-01 | 2011-04-30 | Multi-metric routing calculations |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US12/242,597 Abandoned US20090122753A1 (en) | 2007-10-01 | 2008-09-30 | Dynamic data link segmentation and reassembly |
Family Applications After (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US12/242,747 Active US7948966B2 (en) | 2007-10-01 | 2008-09-30 | Multi-metric routing calculations |
| US13/098,420 Abandoned US20130107726A1 (en) | 2007-10-01 | 2011-04-30 | Multi-metric routing calculations |
Country Status (1)
| Country | Link |
|---|---|
| US (4) | US20090122753A1 (en) |
Cited By (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20100091318A1 (en) * | 2008-10-09 | 2010-04-15 | Andrew Rodney Ferlitsch | Systems and methods for multiple queue options for a single logical printer |
| US20110167427A1 (en) * | 2010-01-07 | 2011-07-07 | Samsung Electronics Co., Ltd. | Computing system, method and computer-readable medium preventing starvation |
| CN103685054A (en) * | 2013-12-18 | 2014-03-26 | 武汉烽火网络有限责任公司 | Multipath load balancing method based on service awareness |
| US20140146755A1 (en) * | 2012-11-29 | 2014-05-29 | China Mobile Communications Corporation | Method for controlling channel access, access point and user equipment |
| US20140201458A1 (en) * | 2013-01-17 | 2014-07-17 | Spirent Communications, Inc. | Reducing cache memory requirements for recording statistics from testing with a multiplicity of flows |
| US20150040133A1 (en) * | 2013-08-05 | 2015-02-05 | International Business Machines Corporation | Multiple stage workload management system |
| US20150215217A1 (en) * | 2010-02-16 | 2015-07-30 | Broadcom Corporation | Traffic management in a multi-channel system |
| US9715465B2 (en) | 2014-10-28 | 2017-07-25 | Samsung Electronics Co., Ltd. | Storage device and operating method of the same |
| US10656966B1 (en) * | 2018-01-02 | 2020-05-19 | Amazon Technologies, Inc. | Deep-inspection weighted round robin of multiple virtualized resources |
| US11349584B2 (en) * | 2019-11-21 | 2022-05-31 | Westwood One, Llc | System and method of providing content to a broadcast network |
| US11811642B2 (en) | 2018-07-27 | 2023-11-07 | GoTenna, Inc. | Vine™: zero-control routing using data packet inspection for wireless mesh networks |
| US20250247357A1 (en) * | 2023-01-17 | 2025-07-31 | Beijing Youzhuju Network Technology Co., Ltd. | Data message response method and apparatus, electronic device and storage medium |
Families Citing this family (161)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8483616B1 (en) | 2005-11-01 | 2013-07-09 | At&T Intellectual Property Ii, L.P. | Non-interference technique for spatially aware mobile ad hoc networking |
| US8355410B2 (en) | 2007-08-17 | 2013-01-15 | At&T Intellectual Property I, L.P. | Location-based mobile gaming application and method for implementing the same using a scalable tiered geocast protocol |
| US20080240096A1 (en) | 2007-03-29 | 2008-10-02 | Twisted Pair Solutions, Inc. | Method, apparatus, system, and article of manufacture for providing distributed convergence nodes in a communication network environment |
| CA2634344A1 (en) * | 2007-06-06 | 2008-12-06 | Black Coral Inc. | Broker mediated geospatial information service including relative ranking data |
| US9137806B2 (en) | 2007-09-21 | 2015-09-15 | Qualcomm Incorporated | Interference management employing fractional time reuse |
| US9066306B2 (en) | 2007-09-21 | 2015-06-23 | Qualcomm Incorporated | Interference management utilizing power control |
| US9374791B2 (en) | 2007-09-21 | 2016-06-21 | Qualcomm Incorporated | Interference management utilizing power and attenuation profiles |
| US9078269B2 (en) | 2007-09-21 | 2015-07-07 | Qualcomm Incorporated | Interference management utilizing HARQ interlaces |
| US8948095B2 (en) * | 2007-11-27 | 2015-02-03 | Qualcomm Incorporated | Interference management in a wireless communication system using frequency selective transmission |
| US20090135754A1 (en) | 2007-11-27 | 2009-05-28 | Qualcomm Incorporated | Interference management in a wireless communication system using overhead channel power control |
| US9456054B2 (en) | 2008-05-16 | 2016-09-27 | Palo Alto Research Center Incorporated | Controlling the spread of interests and content in a content centric network |
| EP2294548A4 (en) * | 2008-07-01 | 2013-06-26 | Twisted Pair Solutions Inc | METHOD, APPARATUS, SYSTEM AND MANUFACTURED ARTICLE PROVIDING RELIABLE INFORMATION ON LOW BANDWIDTH THROUGH UNI AND MULTICAST NETWORKS IN MIXED MODE |
| US9544922B2 (en) | 2008-09-16 | 2017-01-10 | At&T Intellectual Property I, L.P. | Quality of service scheme for collision-based wireless networks |
| JP5239783B2 (en) * | 2008-11-27 | 2013-07-17 | 富士通株式会社 | Route calculation method and node device |
| US8682254B2 (en) * | 2009-06-19 | 2014-03-25 | Empire Technology Development Llc | Wireless communication system modeling |
| CN101616439A (en) | 2009-07-28 | 2009-12-30 | 华为技术有限公司 | Wireless self-backhaul method, device and system in evolved network |
| EP2296324A1 (en) | 2009-09-14 | 2011-03-16 | Thomson Licensing, Inc. | Distributed flow mechanism for peer-to-peer streaming |
| US8923293B2 (en) | 2009-10-21 | 2014-12-30 | Palo Alto Research Center Incorporated | Adaptive multi-interface use for content networking |
| US9118428B2 (en) * | 2009-11-04 | 2015-08-25 | At&T Intellectual Property I, L.P. | Geographic advertising using a scalable wireless geocast protocol |
| US8693366B2 (en) * | 2010-02-23 | 2014-04-08 | Kyushu University, National University Corporation | Communication system, a slave node, a route making method and a program |
| US8249101B2 (en) * | 2010-03-26 | 2012-08-21 | Raytheon Company | Mobile ad hoc network configured as a virtual internet protocol network |
| CN103069863A (en) * | 2010-08-13 | 2013-04-24 | 日本电气株式会社 | Wireless communication network and method for selecting path |
| US9065584B2 (en) | 2010-09-29 | 2015-06-23 | Qualcomm Incorporated | Method and apparatus for adjusting rise-over-thermal threshold |
| US10016684B2 (en) | 2010-10-28 | 2018-07-10 | At&T Intellectual Property I, L.P. | Secure geographic based gaming |
| US8526307B2 (en) * | 2011-03-04 | 2013-09-03 | Ntt Docomo, Inc. | Proportional-fair radio resource management |
| US9386125B2 (en) * | 2011-06-13 | 2016-07-05 | Electronic And Telecommunications Research Institute | Method for transmitting packet-based media data having header in which overhead is minimized |
| US9161158B2 (en) | 2011-06-27 | 2015-10-13 | At&T Intellectual Property I, L.P. | Information acquisition using a scalable wireless geocast protocol |
| US9319842B2 (en) | 2011-06-27 | 2016-04-19 | At&T Intellectual Property I, L.P. | Mobile device configured point and shoot type weapon |
| US8699368B2 (en) * | 2011-07-26 | 2014-04-15 | Cisco Technology, Inc. | Link reliability metrics in communication networks |
| US9319721B2 (en) | 2011-10-13 | 2016-04-19 | Electronics And Telecommunications Research Institute | Method of configuring and transmitting an MMT transport packet |
| US9495870B2 (en) | 2011-10-20 | 2016-11-15 | At&T Intellectual Property I, L.P. | Vehicular communications using a scalable ad hoc geographic routing protocol |
| US8744419B2 (en) | 2011-12-15 | 2014-06-03 | At&T Intellectual Property, I, L.P. | Media distribution via a scalable ad hoc geographic protocol |
| WO2013100752A1 (en) | 2011-12-30 | 2013-07-04 | Mimos Berhad | A method for establishing an end-to-end route for traversing data |
| US9320065B2 (en) * | 2012-03-06 | 2016-04-19 | Koninklijke Philips N.V. | Wireless docking automatic configuration and optimization system |
| US20130279409A1 (en) * | 2012-04-18 | 2013-10-24 | Draker, Inc. | Establishing a Mesh Network |
| US8942120B2 (en) * | 2012-05-24 | 2015-01-27 | Mitsubishi Electric Research Laboratories, Inc. | Reputation-based routing and error-correction coding in ad hoc networks |
| US9071451B2 (en) | 2012-07-31 | 2015-06-30 | At&T Intellectual Property I, L.P. | Geocast-based situation awareness |
| JP6031894B2 (en) * | 2012-08-24 | 2016-11-24 | 富士通株式会社 | Relay program, relay device, and relay method |
| US9210589B2 (en) | 2012-10-09 | 2015-12-08 | At&T Intellectual Property I, L.P. | Geocast protocol for wireless sensor network |
| US20140136508A1 (en) | 2012-11-09 | 2014-05-15 | Palo Alto Research Center Incorporated | Computer-Implemented System And Method For Providing Website Navigation Recommendations |
| EP2923466B1 (en) * | 2012-11-26 | 2020-06-24 | Telefonaktiebolaget LM Ericsson (publ) | Route determination in a multi-hop network using multiple routing metrics |
| US9660745B2 (en) * | 2012-12-12 | 2017-05-23 | At&T Intellectual Property I, L.P. | Geocast-based file transfer |
| US9338082B2 (en) * | 2012-12-27 | 2016-05-10 | T-Mobile Usa, Inc. | Resilient backhaul network |
| US20140198703A1 (en) * | 2013-01-17 | 2014-07-17 | Raytheon Bbn Technologies Corp. | Interface and link selection for a multi-frequency multi-rate multi-transceiver communication device |
| US9402244B2 (en) * | 2013-01-17 | 2016-07-26 | Raytheon Bbn Technologies Corp. | Multiple simultaneous link transmissions for a multi-frequency multi-rate multi-transceiver communications device |
| US9332399B2 (en) * | 2013-01-17 | 2016-05-03 | Raytheon Bbn Technologies Corp. | Just in time link transmission for a multi-frequency multi-rate multi-transceiver communication device |
| US20140233402A1 (en) * | 2013-02-15 | 2014-08-21 | United States Government, as represented by the Department of the Navy | Wireless Network Message Prioritization Technique |
| WO2014129452A1 (en) * | 2013-02-19 | 2014-08-28 | 京セラ株式会社 | Mobile communication system, user terminal, and base station |
| US9094417B2 (en) * | 2013-04-25 | 2015-07-28 | Netapp, Inc. | Status transfer within a group of computing entities |
| WO2015011648A1 (en) * | 2013-07-24 | 2015-01-29 | Telefonaktiebolaget L M Ericsson (Publ) | Automated traffic engineering based upon the use of bandwidth and unequal cost path utilization |
| US9544331B2 (en) * | 2013-10-31 | 2017-01-10 | Aruba Networks, Inc. | Method and system for controlling access to shared devices |
| US9742681B2 (en) * | 2013-11-06 | 2017-08-22 | Sony Corporation | Session-based traffic routing policies |
| WO2015079395A2 (en) * | 2013-11-26 | 2015-06-04 | Telefonaktiebolaget L M Ericsson (Publ) | Distributed routing in wireless networks |
| US20150200846A1 (en) * | 2014-01-15 | 2015-07-16 | Cisco Technology, Inc. | Data rate selection with proactive routing in smart grid networks |
| US10098051B2 (en) * | 2014-01-22 | 2018-10-09 | Cisco Technology, Inc. | Gateways and routing in software-defined manets |
| US9954678B2 (en) | 2014-02-06 | 2018-04-24 | Cisco Technology, Inc. | Content-based transport security |
| US9836540B2 (en) | 2014-03-04 | 2017-12-05 | Cisco Technology, Inc. | System and method for direct storage access in a content-centric network |
| US9626413B2 (en) | 2014-03-10 | 2017-04-18 | Cisco Systems, Inc. | System and method for ranking content popularity in a content-centric network |
| US9716622B2 (en) | 2014-04-01 | 2017-07-25 | Cisco Technology, Inc. | System and method for dynamic name configuration in content-centric networks |
| US9473576B2 (en) | 2014-04-07 | 2016-10-18 | Palo Alto Research Center Incorporated | Service discovery using collection synchronization with exact names |
| US9992281B2 (en) | 2014-05-01 | 2018-06-05 | Cisco Technology, Inc. | Accountable content stores for information centric networks |
| US9609014B2 (en) | 2014-05-22 | 2017-03-28 | Cisco Systems, Inc. | Method and apparatus for preventing insertion of malicious content at a named data network router |
| US10778334B2 (en) * | 2014-06-06 | 2020-09-15 | Vivint, Inc. | Fiber/wireless hybrid solution |
| US9699198B2 (en) | 2014-07-07 | 2017-07-04 | Cisco Technology, Inc. | System and method for parallel secure content bootstrapping in content-centric networks |
| US9621354B2 (en) | 2014-07-17 | 2017-04-11 | Cisco Systems, Inc. | Reconstructable content objects |
| US9590887B2 (en) | 2014-07-18 | 2017-03-07 | Cisco Systems, Inc. | Method and system for keeping interest alive in a content centric network |
| US9729616B2 (en) | 2014-07-18 | 2017-08-08 | Cisco Technology, Inc. | Reputation-based strategy for forwarding and responding to interests over a content centric network |
| US9882964B2 (en) | 2014-08-08 | 2018-01-30 | Cisco Technology, Inc. | Explicit strategy feedback in name-based forwarding |
| US9729662B2 (en) | 2014-08-11 | 2017-08-08 | Cisco Technology, Inc. | Probabilistic lazy-forwarding technique without validation in a content centric network |
| US9800637B2 (en) | 2014-08-19 | 2017-10-24 | Cisco Technology, Inc. | System and method for all-in-one content stream in content-centric networks |
| US9717067B2 (en) | 2014-09-09 | 2017-07-25 | Vivint, Inc. | Location-based access point module control |
| US10069933B2 (en) | 2014-10-23 | 2018-09-04 | Cisco Technology, Inc. | System and method for creating virtual interfaces based on network characteristics |
| US9590948B2 (en) | 2014-12-15 | 2017-03-07 | Cisco Systems, Inc. | CCN routing using hardware-assisted hash tables |
| US10237189B2 (en) | 2014-12-16 | 2019-03-19 | Cisco Technology, Inc. | System and method for distance-based interest forwarding |
| US10003520B2 (en) | 2014-12-22 | 2018-06-19 | Cisco Technology, Inc. | System and method for efficient name-based content routing using link-state information in information-centric networks |
| US9660825B2 (en) | 2014-12-24 | 2017-05-23 | Cisco Technology, Inc. | System and method for multi-source multicasting in content-centric networks |
| US9916457B2 (en) | 2015-01-12 | 2018-03-13 | Cisco Technology, Inc. | Decoupled name security binding for CCN objects |
| US9832291B2 (en) | 2015-01-12 | 2017-11-28 | Cisco Technology, Inc. | Auto-configurable transport stack |
| US9954795B2 (en) | 2015-01-12 | 2018-04-24 | Cisco Technology, Inc. | Resource allocation using CCN manifests |
| US9946743B2 (en) | 2015-01-12 | 2018-04-17 | Cisco Technology, Inc. | Order encoded manifests in a content centric network |
| US9621462B2 (en) * | 2015-02-03 | 2017-04-11 | Google Inc. | Mesh network addressing |
| US10333840B2 (en) | 2015-02-06 | 2019-06-25 | Cisco Technology, Inc. | System and method for on-demand content exchange with adaptive naming in information-centric networks |
| US10075401B2 (en) | 2015-03-18 | 2018-09-11 | Cisco Technology, Inc. | Pending interest table behavior |
| US10075402B2 (en) | 2015-06-24 | 2018-09-11 | Cisco Technology, Inc. | Flexible command and control in content centric networks |
| US10701038B2 (en) | 2015-07-27 | 2020-06-30 | Cisco Technology, Inc. | Content negotiation in a content centric network |
| US10952123B1 (en) * | 2015-07-28 | 2021-03-16 | National Technology & Engineering Solutions Of Sandia, Llc | Ultra-high reliability wireless communication systems and methods |
| US12408097B1 (en) | 2015-07-28 | 2025-09-02 | National Technology & Engineering Solutions Of Sandia, Llc | Ultra-high reliability wireless communication systems and methods with jamming detection |
| US9986034B2 (en) | 2015-08-03 | 2018-05-29 | Cisco Technology, Inc. | Transferring state in content centric network stacks |
| WO2017039506A1 (en) * | 2015-09-03 | 2017-03-09 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and network node for localizing a fault causing performance degradation of service |
| US9832123B2 (en) | 2015-09-11 | 2017-11-28 | Cisco Technology, Inc. | Network named fragments in a content centric network |
| US10355999B2 (en) | 2015-09-23 | 2019-07-16 | Cisco Technology, Inc. | Flow control with network named fragments |
| US10313227B2 (en) | 2015-09-24 | 2019-06-04 | Cisco Technology, Inc. | System and method for eliminating undetected interest looping in information-centric networks |
| US9977809B2 (en) | 2015-09-24 | 2018-05-22 | Cisco Technology, Inc. | Information and data framework in a content centric network |
| US10454820B2 (en) | 2015-09-29 | 2019-10-22 | Cisco Technology, Inc. | System and method for stateless information-centric networking |
| US10263965B2 (en) | 2015-10-16 | 2019-04-16 | Cisco Technology, Inc. | Encrypted CCNx |
| US10524108B2 (en) * | 2015-10-19 | 2019-12-31 | Qualomm Incorporated | D2D communication for eMTC design considerations |
| US9794238B2 (en) | 2015-10-29 | 2017-10-17 | Cisco Technology, Inc. | System for key exchange in a content centric network |
| US9807205B2 (en) | 2015-11-02 | 2017-10-31 | Cisco Technology, Inc. | Header compression for CCN messages using dictionary |
| GB2544524B (en) | 2015-11-20 | 2017-12-06 | Bluwireless Tech Ltd | Wireless mesh communications networks |
| GB2544525B (en) * | 2015-11-20 | 2017-12-06 | Bluwireless Tech Ltd | Wired mesh communications networks |
| US9912776B2 (en) | 2015-12-02 | 2018-03-06 | Cisco Technology, Inc. | Explicit content deletion commands in a content centric network |
| US10097346B2 (en) | 2015-12-09 | 2018-10-09 | Cisco Technology, Inc. | Key catalogs in a content centric network |
| US10078062B2 (en) | 2015-12-15 | 2018-09-18 | Palo Alto Research Center Incorporated | Device health estimation by combining contextual information with sensor data |
| US10257271B2 (en) | 2016-01-11 | 2019-04-09 | Cisco Technology, Inc. | Chandra-Toueg consensus in a content centric network |
| US9949301B2 (en) | 2016-01-20 | 2018-04-17 | Palo Alto Research Center Incorporated | Methods for fast, secure and privacy-friendly internet connection discovery in wireless networks |
| US10305864B2 (en) | 2016-01-25 | 2019-05-28 | Cisco Technology, Inc. | Method and system for interest encryption in a content centric network |
| US10043016B2 (en) | 2016-02-29 | 2018-08-07 | Cisco Technology, Inc. | Method and system for name encryption agreement in a content centric network |
| US10742596B2 (en) | 2016-03-04 | 2020-08-11 | Cisco Technology, Inc. | Method and system for reducing a collision probability of hash-based names using a publisher identifier |
| US10003507B2 (en) | 2016-03-04 | 2018-06-19 | Cisco Technology, Inc. | Transport session state protocol |
| US10038633B2 (en) | 2016-03-04 | 2018-07-31 | Cisco Technology, Inc. | Protocol to query for historical network information in a content centric network |
| US10051071B2 (en) | 2016-03-04 | 2018-08-14 | Cisco Technology, Inc. | Method and system for collecting historical network information in a content centric network |
| US9832116B2 (en) | 2016-03-14 | 2017-11-28 | Cisco Technology, Inc. | Adjusting entries in a forwarding information base in a content centric network |
| US10212196B2 (en) | 2016-03-16 | 2019-02-19 | Cisco Technology, Inc. | Interface discovery and authentication in a name-based network |
| US10067948B2 (en) | 2016-03-18 | 2018-09-04 | Cisco Technology, Inc. | Data deduping in content centric networking manifests |
| US11436656B2 (en) | 2016-03-18 | 2022-09-06 | Palo Alto Research Center Incorporated | System and method for a real-time egocentric collaborative filter on large datasets |
| US10091330B2 (en) | 2016-03-23 | 2018-10-02 | Cisco Technology, Inc. | Interest scheduling by an information and data framework in a content centric network |
| US10033639B2 (en) | 2016-03-25 | 2018-07-24 | Cisco Technology, Inc. | System and method for routing packets in a content centric network using anonymous datagrams |
| US10320760B2 (en) | 2016-04-01 | 2019-06-11 | Cisco Technology, Inc. | Method and system for mutating and caching content in a content centric network |
| US9930146B2 (en) | 2016-04-04 | 2018-03-27 | Cisco Technology, Inc. | System and method for compressing content centric networking messages |
| US10425503B2 (en) | 2016-04-07 | 2019-09-24 | Cisco Technology, Inc. | Shared pending interest table in a content centric network |
| US10027578B2 (en) | 2016-04-11 | 2018-07-17 | Cisco Technology, Inc. | Method and system for routable prefix queries in a content centric network |
| US10404450B2 (en) | 2016-05-02 | 2019-09-03 | Cisco Technology, Inc. | Schematized access control in a content centric network |
| US10320675B2 (en) | 2016-05-04 | 2019-06-11 | Cisco Technology, Inc. | System and method for routing packets in a stateless content centric network |
| US10547589B2 (en) | 2016-05-09 | 2020-01-28 | Cisco Technology, Inc. | System for implementing a small computer systems interface protocol over a content centric network |
| US10063414B2 (en) | 2016-05-13 | 2018-08-28 | Cisco Technology, Inc. | Updating a transport stack in a content centric network |
| US10084764B2 (en) | 2016-05-13 | 2018-09-25 | Cisco Technology, Inc. | System for a secure encryption proxy in a content centric network |
| US10103989B2 (en) | 2016-06-13 | 2018-10-16 | Cisco Technology, Inc. | Content object return messages in a content centric network |
| US10305865B2 (en) | 2016-06-21 | 2019-05-28 | Cisco Technology, Inc. | Permutation-based content encryption with manifests in a content centric network |
| US10148572B2 (en) | 2016-06-27 | 2018-12-04 | Cisco Technology, Inc. | Method and system for interest groups in a content centric network |
| US10009266B2 (en) | 2016-07-05 | 2018-06-26 | Cisco Technology, Inc. | Method and system for reference counted pending interest tables in a content centric network |
| US11093834B2 (en) | 2016-07-06 | 2021-08-17 | Palo Alto Research Center Incorporated | Computer-implemented system and method for predicting activity outcome based on user attention |
| US9992097B2 (en) | 2016-07-11 | 2018-06-05 | Cisco Technology, Inc. | System and method for piggybacking routing information in interests in a content centric network |
| US10122624B2 (en) | 2016-07-25 | 2018-11-06 | Cisco Technology, Inc. | System and method for ephemeral entries in a forwarding information base in a content centric network |
| US10069729B2 (en) | 2016-08-08 | 2018-09-04 | Cisco Technology, Inc. | System and method for throttling traffic based on a forwarding information base in a content centric network |
| US10956412B2 (en) | 2016-08-09 | 2021-03-23 | Cisco Technology, Inc. | Method and system for conjunctive normal form attribute matching in a content centric network |
| US10033642B2 (en) | 2016-09-19 | 2018-07-24 | Cisco Technology, Inc. | System and method for making optimal routing decisions based on device-specific parameters in a content centric network |
| US10212248B2 (en) | 2016-10-03 | 2019-02-19 | Cisco Technology, Inc. | Cache management on high availability routers in a content centric network |
| US10447805B2 (en) | 2016-10-10 | 2019-10-15 | Cisco Technology, Inc. | Distributed consensus in a content centric network |
| US10405264B2 (en) * | 2016-10-17 | 2019-09-03 | WiSilica Inc. | Bulk pairing for mesh networks |
| US10135948B2 (en) | 2016-10-31 | 2018-11-20 | Cisco Technology, Inc. | System and method for process migration in a content centric network |
| US10243851B2 (en) | 2016-11-21 | 2019-03-26 | Cisco Technology, Inc. | System and method for forwarder connection information in a content centric network |
| US20180270679A1 (en) * | 2017-03-20 | 2018-09-20 | Nokia Technologies Oy | Reliability-based multi-link communications |
| US10742271B2 (en) | 2017-05-04 | 2020-08-11 | At&T Intellectual Property I, L.P. | Code block group configuration with code block segmentation for 5G systems |
| JP6801619B2 (en) * | 2017-09-25 | 2020-12-16 | 株式会社デンソー | Data transfer route calculation device and data transfer terminal |
| US10341190B2 (en) * | 2017-11-14 | 2019-07-02 | International Business Machines Corporation | Centrality measure ranking for a multiplex network |
| US10813169B2 (en) | 2018-03-22 | 2020-10-20 | GoTenna, Inc. | Mesh network deployment kit |
| US10826831B2 (en) * | 2018-05-30 | 2020-11-03 | Cisco Technology, Inc. | Dynamic protocol independent multicast load balancing |
| CN110167097B (en) * | 2019-04-22 | 2024-02-20 | 北京邮电大学 | Relay routing method for mobile robots based on weighted metric forwarding and path planning |
| US11317427B2 (en) * | 2019-11-11 | 2022-04-26 | Trellisware Technologies, Inc. | Network-enabled connectivity for disadvantaged communication links |
| US11329880B2 (en) * | 2020-01-09 | 2022-05-10 | Dell Products L.P. | Automatic route reflector configuration system |
| CN113472671B (en) * | 2020-03-30 | 2023-05-02 | 中国电信股份有限公司 | Method, device and computer readable storage medium for determining multicast route |
| CN111726647B (en) * | 2020-06-17 | 2023-05-26 | 京东方科技集团股份有限公司 | Data distribution device and data processing system |
| CN112583715B (en) * | 2020-12-08 | 2022-05-27 | 广州技象科技有限公司 | Equipment node connection adjustment method and device |
| US11758369B2 (en) * | 2020-12-23 | 2023-09-12 | Itron Global Sarl | Discovery of forwarders to mitigate asymmetric links in a multicast group |
| US12052782B2 (en) | 2020-12-23 | 2024-07-30 | ITRON, Global Sarl | Unicast discovery of forwarders in a multicast group |
| US12231944B2 (en) * | 2021-07-30 | 2025-02-18 | Hughes Network Systems, Llc | System and methods for providing integrated 5G and satellite service in backhaul and edge computing applications |
| CN113572692B (en) * | 2021-09-24 | 2021-12-28 | 天津市海承科技发展有限公司 | Multicast routing method of high-speed power line carrier communication network |
| US11929907B2 (en) | 2022-03-08 | 2024-03-12 | T-Mobile Usa, Inc. | Endpoint assisted selection of routing paths over multiple networks |
| US12101121B2 (en) * | 2022-08-18 | 2024-09-24 | At&T Mobility Ii Llc | Mobile telecommunications network access point configuration and fiber routing configuration for customer premises equipment |
| GB2622064A (en) * | 2022-09-01 | 2024-03-06 | Bae Systems Plc | Communication network |
| CN119300169B (en) * | 2024-06-20 | 2025-10-17 | 鹏城实验室 | Situation awareness-based self-adaptive access duration method, device, equipment and product |
Citations (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6438135B1 (en) * | 1999-10-21 | 2002-08-20 | Advanced Micro Devices, Inc. | Dynamic weighted round robin queuing |
| US20020150115A1 (en) * | 2001-03-09 | 2002-10-17 | O. Raif Onvural | Time based packet scheduling and sorting system |
| US20040165596A1 (en) * | 2001-08-01 | 2004-08-26 | Garcia Javier Romero | Apparatus and method for flow scheduling based on priorities in a mobile network |
| US20040196860A1 (en) * | 2003-04-02 | 2004-10-07 | Docomo Communications Laboratories Usa, Inc. | Systems and methods for goodput guarantee through adaptive fair queuing |
| US20050147034A1 (en) * | 2003-08-25 | 2005-07-07 | Yongdong Zhao | Method of performing weighted round-robin queue scheduling using a dynamic link list and structure for implementing same |
| US6940814B1 (en) * | 1997-06-30 | 2005-09-06 | Sun Microsystems, Inc. | System and method for a quality of service in a multi-layer network element |
| US7062687B1 (en) * | 1999-07-12 | 2006-06-13 | International Business Machines Corporation | Apparatus and method for setting a data rate in a wireless communication system |
| US20060176807A1 (en) * | 2005-02-07 | 2006-08-10 | Chiutien Wu | Preemptive weighted round robin scheduler |
| US7110359B1 (en) * | 2001-03-05 | 2006-09-19 | Advanced Micro Devices, Inc. | System and method for dynamically updating weights of weighted round robin in output queues |
| US20060268879A1 (en) * | 2005-05-11 | 2006-11-30 | Texas Instruments Incorporated | Quality of service aware robust link state routing for mesh networks |
| US7277446B1 (en) * | 2000-11-02 | 2007-10-02 | Airvana, Inc. | Communication of digital data over a wireless transmission medium |
| US20070253438A1 (en) * | 2006-04-28 | 2007-11-01 | Tellabs San Jose, Inc. | Differentiated services using weighted quality of service (QoS) |
| US20080175270A1 (en) * | 2007-01-23 | 2008-07-24 | Deepak Kataria | Multi-Stage Scheduler with Processor Resource and Bandwidth Resource Allocation |
| US7616565B2 (en) * | 2007-02-26 | 2009-11-10 | Raytheon Company | Network communication scheduling |
| US20090285229A1 (en) * | 2006-06-15 | 2009-11-19 | Michal Wermuth | Method for scheduling of packets in tdma channels |
Family Cites Families (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3075251B2 (en) * | 1998-03-05 | 2000-08-14 | 日本電気株式会社 | Virtual Path Bandwidth Distribution System in Asynchronous Transfer Mode Switching Network |
| US6788702B1 (en) | 1999-10-15 | 2004-09-07 | Nokia Wireless Routers, Inc. | Protocol for neighborhood-established transmission scheduling |
| KR20020055285A (en) | 2000-12-28 | 2002-07-08 | 구자홍 | Slot Allocation Method in Wireless Section of WATM System |
| US20020150099A1 (en) * | 2001-04-13 | 2002-10-17 | Pung Hung Keng | Multicast routing method satisfying quality of service constraints, software and devices |
| US7027409B2 (en) * | 2002-01-10 | 2006-04-11 | Harris Corporation | Method and device for establishing communication links and for estimating overall quality of a directional link and reporting to OLSR in a communication system |
| US7107498B1 (en) | 2002-04-16 | 2006-09-12 | Methnetworks, Inc. | System and method for identifying and maintaining reliable infrastructure links using bit error rate data in an ad-hoc communication network |
| US7764617B2 (en) * | 2002-04-29 | 2010-07-27 | Harris Corporation | Mobile ad-hoc network and methods for performing functions therein based upon weighted quality of service metrics |
| US20050047353A1 (en) * | 2003-08-25 | 2005-03-03 | Susan Hares | Systems and methods for routing employing link state and path vector techniques |
| US7085290B2 (en) * | 2003-09-09 | 2006-08-01 | Harris Corporation | Mobile ad hoc network (MANET) providing connectivity enhancement features and related methods |
| US7388841B2 (en) * | 2003-10-20 | 2008-06-17 | Mitsubishi Electric Research Laboratories, Inc. | Selecting multiple paths in overlay networks for streaming data |
| US7593333B2 (en) * | 2004-07-07 | 2009-09-22 | Microsoft Corporation | Efficient one-to-many content distribution in a peer-to-peer computer network |
| JP4606249B2 (en) * | 2005-05-18 | 2011-01-05 | 富士通株式会社 | Information processing method and router |
| US7729257B2 (en) * | 2006-03-30 | 2010-06-01 | Alcatel-Lucent Usa Inc. | Method and apparatus for link transmission scheduling for handling traffic variation in wireless mesh networks |
| US7558209B2 (en) * | 2006-04-28 | 2009-07-07 | Alcatel-Lucent Usa Inc. | Maximum-throughput routing of traffic in the hose model |
| WO2008066516A1 (en) * | 2006-11-29 | 2008-06-05 | Thomson Licensing | Contribution aware peer-to-peer live streaming service |
| US9049095B2 (en) * | 2006-12-29 | 2015-06-02 | Alcatel Lucent | Methods and devices for providing ingress routing in selective randomized load balancing |
| US7894830B2 (en) * | 2007-04-28 | 2011-02-22 | Broadcom Corporation | Motion adaptive wireless local area network, wireless communications device and integrated circuits for use therewith |
| US7949345B2 (en) * | 2007-09-18 | 2011-05-24 | Alfaplus Semiconductor Inc. | Cognitive radio system and method |
| US20090089319A1 (en) | 2007-10-01 | 2009-04-02 | Tele Atlas North America, Inc. | System and Method for Differentiating Duplicate Addresses in a Locality |
| US7965671B2 (en) | 2007-10-01 | 2011-06-21 | Powerwave Cognition, Inc. | Dynamic channel sharing using bandwidth metrics |
| US20100169937A1 (en) * | 2008-04-04 | 2010-07-01 | Peter Atwal | Wireless ad hoc networking for set top boxes |
-
2008
- 2008-09-30 US US12/242,597 patent/US20090122753A1/en not_active Abandoned
- 2008-09-30 US US12/242,697 patent/US20090122766A1/en not_active Abandoned
- 2008-09-30 US US12/242,747 patent/US7948966B2/en active Active
-
2011
- 2011-04-30 US US13/098,420 patent/US20130107726A1/en not_active Abandoned
Patent Citations (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6940814B1 (en) * | 1997-06-30 | 2005-09-06 | Sun Microsystems, Inc. | System and method for a quality of service in a multi-layer network element |
| US7062687B1 (en) * | 1999-07-12 | 2006-06-13 | International Business Machines Corporation | Apparatus and method for setting a data rate in a wireless communication system |
| US6438135B1 (en) * | 1999-10-21 | 2002-08-20 | Advanced Micro Devices, Inc. | Dynamic weighted round robin queuing |
| US7277446B1 (en) * | 2000-11-02 | 2007-10-02 | Airvana, Inc. | Communication of digital data over a wireless transmission medium |
| US7110359B1 (en) * | 2001-03-05 | 2006-09-19 | Advanced Micro Devices, Inc. | System and method for dynamically updating weights of weighted round robin in output queues |
| US20020150115A1 (en) * | 2001-03-09 | 2002-10-17 | O. Raif Onvural | Time based packet scheduling and sorting system |
| US20040165596A1 (en) * | 2001-08-01 | 2004-08-26 | Garcia Javier Romero | Apparatus and method for flow scheduling based on priorities in a mobile network |
| US20040196860A1 (en) * | 2003-04-02 | 2004-10-07 | Docomo Communications Laboratories Usa, Inc. | Systems and methods for goodput guarantee through adaptive fair queuing |
| US20050147034A1 (en) * | 2003-08-25 | 2005-07-07 | Yongdong Zhao | Method of performing weighted round-robin queue scheduling using a dynamic link list and structure for implementing same |
| US20060176807A1 (en) * | 2005-02-07 | 2006-08-10 | Chiutien Wu | Preemptive weighted round robin scheduler |
| US20060268879A1 (en) * | 2005-05-11 | 2006-11-30 | Texas Instruments Incorporated | Quality of service aware robust link state routing for mesh networks |
| US20070253438A1 (en) * | 2006-04-28 | 2007-11-01 | Tellabs San Jose, Inc. | Differentiated services using weighted quality of service (QoS) |
| US20090285229A1 (en) * | 2006-06-15 | 2009-11-19 | Michal Wermuth | Method for scheduling of packets in tdma channels |
| US20080175270A1 (en) * | 2007-01-23 | 2008-07-24 | Deepak Kataria | Multi-Stage Scheduler with Processor Resource and Bandwidth Resource Allocation |
| US7616565B2 (en) * | 2007-02-26 | 2009-11-10 | Raytheon Company | Network communication scheduling |
Cited By (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20100091318A1 (en) * | 2008-10-09 | 2010-04-15 | Andrew Rodney Ferlitsch | Systems and methods for multiple queue options for a single logical printer |
| US8799913B2 (en) * | 2010-01-07 | 2014-08-05 | Samsung Electronics Co., Ltd | Computing system, method and computer-readable medium for managing a processing of tasks |
| US20110167427A1 (en) * | 2010-01-07 | 2011-07-07 | Samsung Electronics Co., Ltd. | Computing system, method and computer-readable medium preventing starvation |
| US9479444B2 (en) * | 2010-02-16 | 2016-10-25 | Broadcom Corporation | Traffic management in a multi-channel system |
| US20150215217A1 (en) * | 2010-02-16 | 2015-07-30 | Broadcom Corporation | Traffic management in a multi-channel system |
| US20140146755A1 (en) * | 2012-11-29 | 2014-05-29 | China Mobile Communications Corporation | Method for controlling channel access, access point and user equipment |
| US9072079B2 (en) * | 2012-11-29 | 2015-06-30 | China Mobile Communications Corporation | Method for controlling channel access, access point and user equipment |
| US20140201458A1 (en) * | 2013-01-17 | 2014-07-17 | Spirent Communications, Inc. | Reducing cache memory requirements for recording statistics from testing with a multiplicity of flows |
| US9733984B2 (en) | 2013-08-05 | 2017-08-15 | International Business Machines Corporation | Multiple stage workload management system |
| US20150040133A1 (en) * | 2013-08-05 | 2015-02-05 | International Business Machines Corporation | Multiple stage workload management system |
| US9304816B2 (en) * | 2013-08-05 | 2016-04-05 | International Business Machines Corporation | Multiple stage workload management system |
| CN103685054A (en) * | 2013-12-18 | 2014-03-26 | 武汉烽火网络有限责任公司 | Multipath load balancing method based on service awareness |
| CN103685054B (en) * | 2013-12-18 | 2017-02-01 | 武汉烽火网络有限责任公司 | Multipath load balancing method based on service awareness |
| US9715465B2 (en) | 2014-10-28 | 2017-07-25 | Samsung Electronics Co., Ltd. | Storage device and operating method of the same |
| US10656966B1 (en) * | 2018-01-02 | 2020-05-19 | Amazon Technologies, Inc. | Deep-inspection weighted round robin of multiple virtualized resources |
| US11811642B2 (en) | 2018-07-27 | 2023-11-07 | GoTenna, Inc. | Vine™: zero-control routing using data packet inspection for wireless mesh networks |
| US11349584B2 (en) * | 2019-11-21 | 2022-05-31 | Westwood One, Llc | System and method of providing content to a broadcast network |
| US11863293B2 (en) | 2019-11-21 | 2024-01-02 | Westwood One, Llc | System and method of providing content to a broadcast network |
| US20250247357A1 (en) * | 2023-01-17 | 2025-07-31 | Beijing Youzhuju Network Technology Co., Ltd. | Data message response method and apparatus, electronic device and storage medium |
| US12519747B2 (en) * | 2023-01-17 | 2026-01-06 | Beijing Youzhuju Network Technology Co., Ltd. | Method, electronic device, and storage medium for performing a response process based on response messages |
Also Published As
| Publication number | Publication date |
|---|---|
| US20090122753A1 (en) | 2009-05-14 |
| US20090116393A1 (en) | 2009-05-07 |
| US7948966B2 (en) | 2011-05-24 |
| US20130107726A1 (en) | 2013-05-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20090122766A1 (en) | Nested weighted round robin queuing | |
| US7965671B2 (en) | Dynamic channel sharing using bandwidth metrics | |
| US20110164527A1 (en) | Enhanced wireless ad hoc communication techniques | |
| WO2010028311A1 (en) | Enhanced wireless ad hoc communication techniques | |
| US20110164546A1 (en) | Vehicular mobility vector based routing | |
| US8060017B2 (en) | Methods and systems for a mobile, broadband, routable internet | |
| US20110117852A1 (en) | Ad hoc wireless communications | |
| EP2374319B1 (en) | Multi-transport mode devices having improved data throughput | |
| US20100150120A1 (en) | Mobile applications for a mobile, broadband, routable internet | |
| US20100142447A1 (en) | Web applications for a mobile, broadband, routable internet | |
| JP2009517987A (en) | Method and system for improving the quality of a wireless communication route | |
| ES2913209T3 (en) | Methods, devices and systems to implement centralized hybrid wireless self-organizing networks | |
| Diaz et al. | MWAHCA: a multimedia wireless Ad Hoc cluster architecture | |
| Manikantan Shila et al. | An interference-aware admission control design for wireless mesh networks | |
| Kandah et al. | Diverse path routing with interference and reusability consideration in wireless mesh networks | |
| Farooq et al. | Stateless and Controlled Reservation Based DiffServ Model for Mobile Ad Hoc Networks | |
| Vázquez Rodas | Contribution to the improvement of the performance of wireless mesh networks providing real time services | |
| Nandiraju | Efficient Traffic Diversion and Load-balancing in Multi-hop Wireless Mesh Networks | |
| Yuan | ACO-based routing algorithms for wireless mesh networks | |
| Salazar Gaitán | A QoS routing framework for MANETs |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: POWERWAVE COGNITION, INC., NEW HAMPSHIRE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HUGHES, TIMOTHY J.;KISHABA, WENDELL Y.;GUREVICH, MARINA;AND OTHERS;REEL/FRAME:022605/0421;SIGNING DATES FROM 20090330 TO 20090421 |
|
| STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |