The disclosed technology relates generally to Body Area Networks (BANs), and more particularly, some embodiments relate to heterogeneous data traffic types and admission control accounting for quality of service (QoS) parameters.
Wireless BANs are an emerging type of wireless network, and have gained considerable attention due to their health and wellness applications for everyday users. Major targets for BANs are medical body sensors, including those that may be attached to or implanted in the body, as well as devices that provide medical intervention, such as drug delivery devices, or pacemakers (termed “actuators”).
BANs have specific characteristics in terms of topology (e.g., star topology having a hub and one or more body sensors), application requirements, and power consumption that distinguish them from the more widespread wireless Personal Area Networks (PANs). BAN devices are typically small, with limited battery life, making power consumption a major concern.
According to various embodiments of the disclosed technology, a method of admission control for a network, such as a body area network, is provided. In some embodiments, the method comprises a hub device configured to receive a join request message during an unreserved period of a frame period, where the join request message is received from a requesting data flow associated with a connecting network device. The join request message is a message by which the connecting network device seeks to join a network. Upon receipt of the join request message, the hub device determines an available range for one or more connection parameters for the requesting data flow, and sets these one or more connection parameters for the requesting data flow to the a default connection parameter, which may be defined in other embodiments as the maximum of the maximum of the available range.
The hub then determines whether sufficient resources are available within the network to admit the requesting data flow based on the determined available range of connection parameters for the requesting data flow (e.g., based on the default connection parameter). If the hub determines sufficient resources are available, the hub admits the requesting data flow. Additionally, in some embodiments the hub may be further configured to conduct an admission control scheme designed to identify an adjustment option, a termination option, or combination of these options that may result in sufficient resources being available within the network so that the requesting flow may be admitted.
Other features and aspects of the disclosed technology will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, which illustrate, by way of example, the features in accordance with embodiments of the disclosed technology. The summary is not intended to limit the scope of any inventions described herein, which are defined solely by the claims attached hereto.
The technology disclosed herein, in accordance with one or more various embodiments, is described in detail with reference to the following figures. The drawings are provided for purposes of illustration only and merely depict typical or example embodiments of the disclosed technology. These drawings are provided to facilitate the reader's understanding of the disclosed technology and shall not be considered limiting of the breadth, scope, or applicability thereof. It should be noted that for clarity and ease of illustration these drawings are not necessarily made to scale.
The figures are not intended to be exhaustive or to limit the invention to the precise form disclosed. It should be understood that the invention can be practiced with modification and alteration, and that the disclosed technology be limited only by the claims and the equivalents thereof.
Systems and methods disclosed herein are configured to coordinate the addition of new flows to a communication network, and can be configured to consider QoS requirements in the admission determinations. In some embodiments, systems and methods may be configured to determine a requesting flow's connection parameters from its QoS requirements and physical constraints of the Slave nodes. When a new join request is received, the network hub may determine whether it is able to admit the requesting flow into the network without removing any of the existing flows. To do so the hub may first consider whether the request can be fulfilled with default settings. If it cannot be fulfilled with default settings, the hub may be configured to reschedule existing flows. This may be at the expense of extra, yet minimal, energy consumption. Rescheduling in various embodiments may be accomplished by adjusting the connection parameters (such as reducing the sleep periods between consecutive reservations) of an existing flow. Preferably, the rescheduling is performed so as to not compromise the QoS requirements of the adjusted flows.
In some applications, rescheduling may be carried out through in-band signaling while the connection is in progress. The Hub may also be configured to adjust the connection parameters of the requesting flow in order to admit it into the network. An algorithm for traversing the flow adjustment options may be implemented and may be configured to avoid exhaustive search amongst a myriad of candidates when looking for the flow adjustment option that incurs results in a minimum energy consumption on its Slave nodes. Accordingly, such an algorithm may be computationally efficient.
In circumstances in which the adjustment does not allow admission of a new flow, a bandwidth-efficient yet priority-aware flow termination algorithm may be invoked to free up sufficient bandwidth to allow the new flow to be admitted. In further embodiments, a combination of adjustment and termination of sets of flows may be implemented to identify a solution to the AC problem.
Embodiments of the systems and methods disclosed herein may be implemented with any of a number of different communication networks. One such network is the Wireless Body Area Network, or BAN. BANs have gained considerable attention due to their health and wellness applications for everyday users. BANs have specific characteristics in terms of topology, application requirements, and power consumption that distinguish them from the more widespread wireless Personal Area Networks (PANs). For one, BANs usually have a simple star topology in which the “hub” acts as the central node. A remote data processing/command center can send sensing and actuation commands to a plurality of sensing and actuating “slave” nodes in and around the body, via the hub. The hub then gathers the sensor data and sends it back to the remote data processing center where it is processed and mined to evaluate the health condition of the patient.
Before describing embodiments of the disclosed inventions in greater detail, an example network with which various of these embodiments may be implemented is first described. This example network is that of a BAN. After reading this description, it will become apparent to one of ordinary skill in the art how the systems and methods disclosed herein can be implemented with other networks and in other networking environments.
An example BAN environment is illustrated in
Because devices 109 in BANs are typically designed to be wearable or implantable, the devices (109) are generally extremely limited by their weight and size, and hence generally have a limited power supply. On the other hand, the hub 107 is typically less mobile, more accessible, and larger in size, and thus typically has a less stringent power consumption requirement (e.g., may have a larger power source).
The trusted server 102 may comprise a remote data processing center—for example, located at a hospital—where data collected by the sensors 109 is processed or stored. The server 102 may issue certain commands to the devices 109 via hub 107. However, in typical implementations, the personal device 106 is used only to access body data and is not allowed to issue commands to the devices 109.
The devices 109 usually have a relatively low data rate (in the order of 100 kbps), low duty cycle (a few minutes of active state in one day), and relatively constant connection duration (a few minutes per connection). However, bursty traffic may be supported. Additionally, the networks 104 are usually relatively stable, with devices 109 rarely joining or leaving the network 104.
BAN applications also impose various QoS-related requirements. Data rates of traffic flows in BANs span a wide spectrum from low-rate intermittent transmissions of medical updates (e.g., body temperature reports once every few minutes) to high rate transmissions of video frames (e.g., video from a capsule endoscope). Besides the data rate, various traffic patterns may each have their own QoS requirements such as reliability, delay, and priority. For example, an alarm message reporting a sudden change in heart rate may have a higher priority than a traffic flow related to regular, routine monitoring of a patient. As another example, real-time traffic from an ECG device may not be as sensitive to a few occasional packet drops as would less frequent traffic, such as glucose level readings, but the former is notable more sensitive to delay than the latter. Accordingly, BAN Media Access Control (MAC) and Admission Control (AC) policies should be able to satisfy a wide range of QoS requirements while minimizing the power consumption of the BAN devices.
Admission control in a BAN and in other communication systems checks to determine whether there are sufficient resources available to allow a device to connect to the network. As noted above, AC policies may be implemented to satisfy a wide range of QoS requirements, while reducing or minimizing the power consumption of network devices. This can be particularly important where the devices are power-sensitive devices such as body sensors (e.g., devices 109 in
Embodiments may be configured to address the different QoS requirements of the heterogeneous traffic types using a determination of connection parameters and admission control scheme. Some non-limiting examples of varied QoS requirements include priority designation, tolerable delay, data rate, and reliability. Conventional AC schemes may not be able to address these. For example, the “first come, first served” scheme used in many conventional networks fails to account for late-arriving flows having higher priority requirements. If “first come, first served” were utilized in a BAN (or other like network having varied QoS requirements), a later-arriving data flow of high importance may be denied admission to the BAN simply because of the relative time at which it was received by the hub. Moreover, the difference in data rate requirements (and possibly reliability) means that the admission scheme of WiFi networks—admitting all traffic, but degrading the throughput when over-populated—also is inapplicable to BANs. If the throughput is degraded, some flows may not be able to meet the data rate QoS requirement, rendering the admission into the BAN unhelpful.
Embodiments of the technology disclosed herein are directed toward methods for allocating resources within a network such as a BAN. More particularly, various embodiments of the technology disclosed herein provide connection parameters for data flows requesting to transmit data within a BAN, while accounting for the varied QoS requirements of the heterogeneous traffic types in the AC process. The connection parameters for a respective flow may be determined, for example, by identifying available ranges for certain parameters (e.g., allocation slot gap, allocation slot size, connection duration) based on the QoS requirements of the flow, as well as the buffer size and power constraints of the associated BAN device. Moreover, various embodiments relate to an AC scheme designed to leverage the identified ranges of connection parameters for the heterogeneous flows. Once a new join request is received from a BAN device, the hub tries to admit the requesting flow into the BAN without removing any of the existing flows. An existing flow is a data flow associated with another BAN device that has already been admitted into the BAN to transmit data. The hub attempts to accommodate the join request by rescheduling the existing flows, at the expense of extra, yet small or minimal, energy consumption. Rescheduling in various embodiments may be accomplished by adjusting the connection parameters (e.g., reducing sleep periods for a BAN device between consecutive reservations) of an existing flow.
In further embodiments, where rescheduling alone is insufficient to enable the new connection, a priority-aware flow termination may be applied. The priority-aware flow termination may be configured to terminate one or more lower-priority flows to allow a higher-priority flow to be admitted. Similarly, this technique can be configured to ensure that higher-ranked flows are not terminated in order to admit a lower-ranked flow. In some applications, a combination of connection-parameter adjustment and flow termination may be utilized to find the optimal solution to the AC scheme, such that the greatest number of connections is maintained in a priority-aware manner.
In discussing various embodiments of the technology disclosed herein, reference is made to the notations in Table 1.
Once the BAN device associates with the network 202, the BAN device is in an unconnected state 204. In the unconnected state 204, the BAN device retains an association with the network, including the trust relationship with the hub. For example, once the device is in the unconnected state 204, session keys can be generated and exchanged without signaling from the server. A device in the unconnected states 204 is typically in a sleep state. However, in some cases, the device may use an unreserved communication period (discussed below) to communicate with the hub while in the unconnected state 204. The hub assumes that a device in the unconnected state 204 is asleep, and will not schedule downlink packets for an unconnected device. Instead, if there is a downlink packet pending, the hub posts the device's ID in a wakeup list (described below).
When the device has data to transmit to the hub, it performs a connection process 206 to enter a connected state 205. For example, the device may enter the connected state 205 to transmit a sensor report to the server via the hub or to receive packets from the server via the hub. As another example, the device may enter the connected state 205 to transmit an emergency message. The connected state 205 is the state in which a device has its transmission and reception scheduled by the hub. After the scheduled traffic has completed, the connection ends 203 and the device re-enters the unconnected state. In exemplary connection process is discussed in greater detail below with respect to
The frame 301 begins with a beacon period 304 where the hub broadcasts a beacon 310. The beacon 310 may contain various information, such as, for example, (a) frame synchronization and timing information; (b) BAN information, such as the BAN ID; (c) channel information; and (d) the length of the frame.
In the illustrated example of
The allocation schedule message 311 can include a schedule of which BAN devices reserved allocation slots 309 during the reserved period 305. In some implementations, the allocation schedule message 311 includes the start times of all reserved allocation slots 309. This may be used by the BAN devices to determine the length of their reserved allocation slots 309. In other implementations, the allocation schedule message 311 includes the lengths of the reserved allocation slots 309. In still further implementations, the allocation slots 309 have a fixed length and the allocation schedule message 311 can include an ordered list of BAN devices. In some implementations, the allocation schedule message 311 can further include a start time of the unreserved period 306. For example, the allocation schedule message 311 may include the start time of the unreserved period 306 if it is not calculable from the other information in the allocation schedule message 311.
The allocation schedule message 311 can further include a wake-up list 320. The wake-up list 320 comprises a list of unconnected BAN devices that have waiting downlink packets. For example, and unconnected BAN device may be listed in the wake-up list 320 in consecutive frames 301 until that BAN device builds a connection. In some implementations, the hub may include an expiration timer, and an unconnected BAN may dropped from the wake-up list 320 when the expiration timer expires (e.g., after a predetermined number of frames). The wake-up list 320 allows BAN devices to remain asleep in an unconnected state for long periods. Even if a BAN device may receive unpredictable downlink traffic, there is no need for the device to check for downlink traffic every frame. Rather, the device may be configured to only check the wake-up list 320 periodically because the device will remain on the wake-up list 320 until it builds a connection.
As illustrated in
In various embodiments, a reserved period 305 may occur after the emergency period 303. The reserved period 305 can include on or more allocation slots 309. One or more of the allocation slots 309 in the reserved period 305 can be reserved for a different connected device. Additionally, in some implementations, the hub may reserve one or more allocation slots 309 for non-existent (dummy) devices to allow the hub device to sleep. In some implementations, each allocation slot 309 has a set size. In other implementations, the allocation slots 309 may have different sizes—for example, depending on the connection requirements.
An allocation slot 309 is begun by a polling request message 312 transmitted by the hub. BAN devices may sleep after receiving the allocation schedule message 311 until the start time (or just before the start time) of their scheduled allocation slot 309. Some desynchronization may occur during this sleep period. Accordingly, the BAN devices may be programmed to wake up at least one guard time interval before their scheduled allocation slot 309. The guard time takes into account probable synchronization loss and may be configured to cause the devices to wake a sufficient time before their allocation slot 309 to receive the polling request message 312.
Each polling request 312 can include a device address for the device that is allowed to transmit during the allocation slot 309. In some cases, the device address in the polling request 312 may not match the device scheduled to use the allocation slot 309 as indicated in the allocation schedule message 311. For example, this may occur if a BAN device's allocation slot 309 has been preempted for an emergency allocation slot.
A BAN device transmits to the hub after receiving a polling request message 312 addressed to the device. Accordingly, the device does not need to maintain an accurate network synchronization to become aligned with its allocation slot 309. Thus, in some embodiments, the device can sleep between the allocation schedule message 311 and the allocation slot 309 without maintaining precise network synchronization and without requiring re-synchronization when waking.
The polling request message 312 may further include relative time offset information, for example, the relative time offset information may comprise the current timeslot 318 position of the allocation slot 309. Other BAN devices, such as unconnected devices waking up to use the unreserved period 306 to build a connection, may use the time offset information contained in the polling request messages 312 to align to the network timing. This alignment may be used to reduce the time spent by an unconnected device to search for the beacon 310. For example, if an unconnected device wakes up during the reserved period 305, the unconnected device can listen to the next polling request message 312 to determine the current timeslot of the frame 301. The unconnected device can use this information to determine the time remaining in the current frame 301. The unconnected device may then reenter a sleep state for the remainder of the frame 301 and wake up in time to hear the next beacon 310. Accordingly, the polling request messages 312 can be used to allow unconnected devices to conserve power by allowing these unconnected devices to avoid having to remain awake until the next beacon 310.
The polling request message 312 may further include the duration of the allocation slot 309 (e.g., if the duration is not fixed during network operations), and the BAN device ID of the device able to use the allocation slot 309. If the allocation slot 309 has been preempted by an emergency request 307, the BAN device ID in the polling request message 312 can be configured to differ from the BAN device ID scheduled in the allocation schedule message 311.
After a short intra-frame space (SIFS) 322, the device identified in the polling request message 312 (the polled device) transmits an uplink response 313, comprising an uplink data packet or a polling response message indicating no uplink data. After the response 313, the hub transmits a downlink response 314. The downlink response 314 comprises an acknowledgement (ACK) of the uplink data packet (if transmitted) and a downlink data packet (if the hub has downlink data). In some implementations, each allocation slot 309 may have more than one packet exchange 313, 314. Subsequent uplink packets 313 include an ACK for the previous downlink data packet 314.
In various embodiments, there is no set division between uplink traffic 313 and downlink traffic 314 during an allocation slot 309. This reduces complexity and allows devices to sleep more often. Rather, the allocations schedule message 311 simply schedules the start time (and, in some cases, length) of the allocation slot 309.
The polled device may reenter a sleep state after the last downlink response 314. If the messages 313, 314 do not take up the entire allocation slot 309, the hub may also sleep for the remainder of the allocation slot 309. Additionally, if the polled device does not transmit a response 313, the hub can use the allocation slot 309 to sleep.
The reserved period 305 ends after the last scheduled allocation slot 309. Accordingly, the length of the reserved period 305 can be configured to vary between consecutive frames 301. Additionally, in some embodiments, the reserved period 305 may not occur in a frame 301 if no allocation slot 309 is scheduled for the frame 301.
An unreserved period 306 occurs after the reserved period 305 (or after emergency period 303 in various embodiments, if there is no reserved period 305). In some embodiments, the reserved period 305 has a maximum length to ensure that there is a predetermined minimum length for the unreserved period 306.
BAN devices may use the unreserved period 306 to build a connection with the hub or to transmit bursty uplink data to the hub. Additionally, new network devices may begin or conduct the association process 202 (e.g., as described with reference to
As discussed above with respect to
The example connection 401 begins during the unreserved period 409 of the first frame (Frame 0) 406. The device building the connection uses the beacon period 404 (or, for example, a polling message 312, 315 as discussed with respect to
During the subsequent frames 407, 408 of the connection 401, the device may have allocation slots 402, 403 scheduled for it. As discussed above, the allocation slots 402, 403, can include polling requests 413, 417; uplink data or polling response messages 414, 416; and ACK or downlink messages 415, 405.
Additionally, the last downlink message 405 may include a connection termination indication. In some implementations, the connection 401 length may be extended in certain circumstances. For example, the connection 401 may be extended if unexpected uplink or downlink traffic is generated during the connection, or if one or more allocation slots 402, 403, are preempted by an emergency connection. In these implementations, the device will continue listening to schedules until a downlink message 405 with a connection termination indication is received.
In some embodiments, the BAN may utilize in-band signaling to provide on-the-fly updating of the connection parameters based on the admission process. For example, when additional traffic sources are inserted into an existing reservation (e.g., Downlink traffic (DL) being added to Uplink traffic (UL)), the connection parameters for the already-admitted connections need to be updated. Moreover, a similar update may be provided when a new request to join the BAN is received and the hub determines that the connection parameters of existing flows should to be adjusted to make room for the new flow. Such updates may be accomplished through in-band signaling.
To provide the in-band signaling update in accordance with embodiments of the present disclosure, the hub may insert a connection update request 515 in Frame J 507 after receiving a data packet 514. After receiving the connection update request 515, the addressed BAN device may suspend data transmission and respond with a connection update response 516. Starting from frame J+1, the hub uses the new connection parameters to assign reservations for the BAN device. The connection update response 516 may, in various embodiments, approve the download (DL) traffic addition. In various embodiments, the inserted signaling messages may continue the acknowledged sequence number as if the transmission/acknowledgement is still going on, in order to avoid disruption of the ongoing transmission. In various embodiments, the in-band signaling messages may carry their own sequence number, to account for the bi-directional nature of signaling message exchange. When the traffic changes from uni-directional to bi-directional, both sequence number and acknowledged sequence number may be included in the MAC header, as what is in the in-band signaling messages.
As discussed above with respect to
During the connection process 206 of
As illustrated in
The hub receives the connection request from the incoming flow 102 and may also utilize one or more operating characteristics of the BAN device from which the connection request originated in generating the connection parameters 610. The number and type of operating characteristics utilized by the hub may differ based on the implementation. In the illustrated example, the operating characteristics associated with the relevant BAN device include the power constraint 606 and the buffer size 608 of the BAN device. In this way, the hub may account for the operating limitations of the BAN device in addition to the QoS requirements in determining what ranges are possible for the connection parameters 610 of the incoming flow 602.
The QoS vector for flow fi (utilized in determining connection parameters) can be rendered as
Qf
where Rf
In order to determine the available range of connection parameters, the value of the frame length L needs to be determined. In various embodiments, L may be the largest length that satisfies the tightest delay requirement among all the flows in the BAN. The value L may be determined, for example, by
where the unit of Df
After determining L, the available ranges for connection parameters of a particular flow may be determined. As discussed above with respect to
In various embodiments, the hub utilizes the information relevant to the incoming flow 602 to compute a minimum and maximum allocation slot gap (number of frames between subsequent allocation slots of a flow's connection), which may then be used to derive the allocation slot size (size of an allocation slot in minislots) and connection duration for a particular flow. In calculating the available ranges for the allocation slot gap Gf
Gf
where
Gf
Gf
In various embodiments, the smaller the gap between subsequent allocation slots, the higher the power usage of the corresponding BAN device. This is due to the extra power consumption associated with the additional overhead linked with the reception of extra beacon, schedule, and polling packets. Therefore, the power constraint of the associated BAN device sets a lower bound (Gf
where Ef
and the per Packet Transmission Time is calculated as
The traffic generation rate, Rf
where the unit of DPf
The maximum allowable gap, Gf
where the unit of BFf
Utilizing the allocation slot gap Gf
where Packets per Allocation Slot (PpAS) is computed as
In equation (8), above, DPf
By identifying minimum and maximum values for the connection parameters of each respective incoming flow 602, the hub has flexibility in determining which specific combination of connection parameters to assign a particular flow when scheduling data transmission during frames of the BAN. Moreover, these allowable ranges of connection parameters may be utilized in a sophisticated AC scheme accounting for priorities of each flow, while maintaining bandwidth-efficiency.
The bandwidth-efficient, QoS-aware AC scheme according to various embodiments of the present disclosure may be configured to utilize the identified ranges of available connection parameters of competing flows to determine which flow to admit or maintain in the BAN. The available ranges for connection parameters indicate the possible values for the connection parameters that the hub may assign to each respective flow that would result in a requesting flow being admitted. In various embodiments, the AC scheme is configured to maximize the number of admitted flows (equation (15)) while ensuring that if a new flow is admitted, the connection parameters of that flow are inside the allowable range.
The following Table 2 contains additional notations as used to describe embodiments of the Admission Control formulation.
f
Each flow is provided a rank, Hf
When a new flow fn requests to join the BAN, it is faced with two sets of flows: the set of flows already existing in the BAN (Fe), and the set of flows that are not currently admitted into the BAN but are candidates to join the BAN (Fr). In various embodiments, two kinds of data flows may be included within Fr: denied flows and terminated flows. Denied flows are flows that sent a connection request to the hub during the current frame, but were denied admission into the BAN. In some embodiments, denied flows may remain in Fr until the end of the current frame, and get removed from Fr for the next frame. In other embodiments, denied flows may be removed from Fr during the current frame.
Terminated flows are flows that were initially admitted into the BAN at some point but were dismissed afterwards. In some embodiments, terminated flows remain in Fr as “valid” candidate flows for re-admission because terminated flows are not aware of the termination until the terminated flow's next allocation slot. In some embodiments, the next allocation slot may be within the current frame or in a future frame. Accordingly, the terminated flows may be able to rejoin the BAN prior to its next allocation slot. Based on the definition of Fa serves as Fe for the next new request.
For ease of discussion, the AC scheme of the present disclosure will be described first under the assumption that Fr≠Ø, meaning that any denied flow or terminated flow is not reconsidered for admission and needs to resend a connection request message in a later frame to seek readmission.
Referring now to
The flexibility provided by the identified available ranges for connection parameters of each flow enables the hub to provide a priority-aware AC scheme that seeks to admit more flows (equation (15)) while satisfying the QoS requirements (equation (16)) and the rank requirement (equation (17)).
At 704, the hub determines the allowable ranges for the connection parameters of the requesting flow. In various embodiments, the connection parameters may include, but are not limited to: allocation slot size; allocation size gap; and connection duration. The allowable ranges for the connection parameters may be determined, for example, in a similar manner as discussed above with respect to
In various embodiments, the solution to the connection parameters may not be unique. This may be seen in equation (3) which shows the allowable range of allocation slot gaps for a respective flow fi. Admission control schemes in accordance with embodiments of the technology disclosed herein exploit the flexibility rendered by equation (3) to accept flows that would not be accepted under traditional admission control schemes. At 704, the allocation slot gap, Gf
After 704, the hub decides whether to admit the requesting flow fn by applying an admission control scheme.
1) Find the set of flows and the corresponding connection parameters that
maximize ∥Fa∥ (15)
subject to:
∀fi∈Fa:QoS requirements (3), (10), (13)are fulfilled (16)
if ∃fk∉Fa and Fak⊆Fa where ∀fi∈Fak:Hf
2) Among solutions found in step 1), find the one with minimum total energy consumption of nodes.
Equation (17) states that it is only possible to admit flows with lower rank than those left out of the BAN, if the removal of the former would still not make it feasible for the latter to join the BAN. In various embodiments, the admission control scheme 750 may include multiple iterations until an adjustment option ΦB is found that frees enough resources to admit the requesting flow fn while meeting all QoS requirements of the relevant flows. If the hub checks all possible adjustment options that still meet all the QoS requirements of associated flows and no option makes available sufficient resources to admit the requesting flow fn, the hub may apply the best adjustment/termination option pair (ΦU, ΨU) that is identified during the admission control scheme 750.
The example admission control scheme 750 begins at 705, where the hub may set an initial value for the adjustment option ΦB. The adjustment option ΦB denotes a set of data flows associated with the BAN considered for adjustment, each data flow having one or more connection parameters the hub may assign. For example, a data flow for a first flow ffirst with an allocation slot gap having a middle value between Gfirstmin and Gfirstmax (i.e., fGfirstmid). An adjustment option ΦB may include flow fGfirstmid, as well as one or more flows associated with other data flows associated with the BAN.
At 705, the hub may set the adjustment option ΦB=Ø. If there are sufficient resources to admit a flow by assigning the default connection parameter to the new flow fn (i.e., the maximum value for the allocation slot gap and corresponding values for allocation slot size and duration as discussed with respect to
At 706, the hub determines whether sufficient resources are available to admit the requesting flow fn. If sufficient resources are available (based on the default connection parameters for the requesting flow fn identified at 704, and the current assigned connection parameters for existing flows Fe), the hub admits the requesting flow fn into the BAN and assigns the default connection parameters for the requesting flow fn. The hub may send a connection response message containing the assigned connection parameters to the requesting flow fn at 708.
Before discussing how the hub determines if sufficient resources are present, it is helpful to discuss in more detail X[t] identified in Table 2. X[t] is a discrete time sequence showing the total allocation slot size in frame t, resulting from existing flows, Fe. In any iteration during the admission control scheme 750, projected adjustment and/or termination of existing flows (as explained in greater detail below) may be accounted for in computing X[t]. The time index of the frame immediately after the new join request is received by the hub at 702 is set to t=0. For X[t], transition points, γ0, . . . , yN, are frames indices at which a connection ends or an adjustment takes place (γ0=0 and γN=maxf
In order to be admitted into a flow by the hub in accordance with the example admission control scheme 750, there must be sufficient resources available such that the varied QoS requirements of heterogeneous data flows are still satisfied. At 706, sufficient resources may be available where,
where ϵ represents extra room left out for management messages in the reserved period in case an adjustment is needed to be made via in-band signaling. As indicated in equation (17), the hub checks to determine whether equation (18) is satisfied for the smaller of: 1) the duration of the new flow's connection
or
2) the remaining duration of the last flow to end among existing flows
For every frame that equation (17) is not satisfied, a “hit” situation occurs. A hit situation means that the channel utilization in the corresponding frame is larger than the maximum capacity of the reserved period (1−β)L.
In some embodiments, the hub may check equation (18) over the entire period t. In various embodiments, the periodic nature of X[t] may be exploited to minimize the computational impact on the hub of checking equation (18) over the entire applicable period t. For every frame, the allocation slot assigned to a particular flow is determined based on the allocation slot gap associated with the flow. In some embodiments, after a certain number of frames, the overall pattern of the allocation slots assigned to each flow may repeat itself.
The periodic nature of X[t] may be exploited by defining
which may be utilized in computing
Where no a* exists, no periodicity of X[t] may be exploited by the hub to reduce the computational complexity of (18). Where a* exists, hit situations may be checked for all t∈{0: min
Then, if CDf
{tilde over (X)}[i]=X[a*Tf
In view of equation (22), the periodic nature of X[t] may be exploited as the search space for detecting hit situations may be reduced. The search need only check whether
Where equation (18) is satisfied for the applicable period, the hub may apply the adjustment option ΦB to the flows associated with the BAN, and the requesting flow fn may then be admitted at 708. Where the adjustment option ΦB=Ø, the requesting flow fn may be admitted using the default parameters (as application of the null set results in no flow adjustments). In such a situation, bandwidth efficiency is attained as the maximum number of flows are admitted into the BAN (i.e., there were sufficient resources to admit the new flow without requiring a change from the available, energy-efficient connection parameters for the requesting flow fn).
If equation (18) is not satisfied (i.e., a hit situation occurs within a frame), the hub may determine a set of candidate flows Ψ at 706. A hit situation indicates that the current connection parameters for the flows associated with the BAN (Fe and fn) does not allow sufficient resources to be available so that all QoS requirements of all flows may be met if the requesting flow fn is admitted. However, termination of one or more existing flows Fe may lead to a “no hit” situation (i.e., equation (18) is satisfied). The set of candidate flows Ψ comprises one or more flows identified by the hub out of the set of existing flows Fe—that have lower rank than fn—that, if terminated, would enable the requesting flow fn to be admitted while ensuring all QoS requirements are met for all remaining flows after admission of fn.
Accordingly, one or more existing flows Fe may need to be terminated to release sufficient resources to admit the requesting flow fn. In various embodiments, for each frame with a hit situation, flows that have allocations in that frame, and with a lower rank than the requesting flow fn, are added to Ψ by the hub.
If the hub determines at 706 that sufficient resources are not available, at 710 the hub computes a termination option ΨB such that equation (18) is satisfied. That is, the algorithm nominates for termination the least number of flows that have the lowest possible priorities. As discussed above, conventional termination approaches propose to start removing the existing flow with the lowest priority, and continue removing the next lowest-priority flow until enough resources are made available to admit the new flow.
However, this approach may lead to wasted bandwidth due to unnecessary removal of some flows. At 710, the hub may employ a more bandwidth-efficient, yet still priority-aware termination approach that seeks to remove the minimal subset of lower rank flows from the BAN. For example, assume that Ψ={f1, f2, f3}, where Hf1<Hf2<Hf3. Under conventional termination approaches, the system would determine whether termination of f1 would release sufficient resources for the new flow to be admitted. If not, the system would then look to see whether terminating both f1 and f2, and if terminating those two flows still fails to make available sufficient resources, then the system would see what would happen if all three existing flows were terminated. This potentially results in remaining unused bandwidth due to the termination of too many flows.
In various embodiments, the termination option identification approach employed by the hub at 710 takes into account the difference in ranks associated with the set of existing candidate flows Ψ in determining the termination option ΨB. The following Table 3 contains additional notations as used to describe computation of the termination option.
Continuing with the example above, the hub would sequentially check at 710 the removal of the following sets, in the following order: f1; f2; {f1, f2}; f3; {f1, f3}; {f2, f3}; {f1, f2, f3}. As can be seen, the termination approach employed at 710 considers the minimal subset of flows with the lowest rank in order instead of just seeing if enough resources are available by terminating the next flow in the list. Note that, no flows are actually terminated at 710; the hub is only identifying the best flow termination option ΨB.
At 710, the flows identified in the set of candidate flows Ψ may be sorted based on increasing order of rank. In various embodiments, the set of candidate flows may be partitioned into a number of subsets Πi wherein each flow included is of equal rank. In the general case the termination option ΨB is determined based on Algorithm 2.
In the above example, flows f1 and f2 are lower rank than f3. Therefore, the hub looks to see whether removal of the lower ranks, individually first, will result in sufficient resources being available to admit the requesting flow fn. By orderly traversing the possible subsets of the existing flows based on rank, the hub can ensure that the minimal number of flows is terminated in order to admit the new flow, resulting in more efficient use of the BAN bandwidth. For example, if sufficient resources are available where {f1, f2} are terminated, the flow termination option ΨB is set as {f1, f2}. Where termination of none of the potential flow combinations would result in sufficient resources being made available, the hub may set the flow termination option ΨB=Ø.
The flow termination option ΨB determined at 710 is associated with the adjustment option ΦB of a given iteration of the admission control scheme 750. Accordingly, the hub may maintain a listing of the “current best” adjustment/termination option pair, (ΦU, ΨU). In this way, where adjustment alone is insufficient to make available sufficient resources, the admission control scheme 750 can still result in admission of the requesting flow fn through application of the current best adjustment/termination option pair (ΦU, ΨU) identified through all iterations of the admission control scheme 750. The use of the current best adjustment/termination option pair (ΦU, ΨU) will be discussed with respect to
At 712, where the hub identified no termination option ΨB at 710 (i.e., 105B=Ø), the hub may continue on to 714. Where the hub does identify a valid termination option ΨB at 710 (i.e., ΨB≠Ø), the hub may compare the potential adjustment/termination option pair (ΦB, ΨB) against the current best adjustment/termination option pair (ΦU, ΨU). Where (ΦB, ΨB) is determined to be a better option than (ΦU, ΨU), the hub updates the current best adjustment termination option such that ΦU=ΦB and ΨU=ΨB.
Where ΨB=Ø, the hub conducts no update of the current best adjustment/termination option pair because the adjustment option ΦB was already determined to be insufficient, and there is no termination option that would remedy the hit situation. In various embodiments, the first time ΨB≠Ø the current best adjustment/termination option pair (ΦU, ΨU) may be immediately updated by values (ΦB, ΨB), because the first time ΨB≠Ø indicates the first adjustment/termination option pair (ΦB, ΨB) that may result in a “no hit” situation. For each iteration of the admission control scheme 750 following the first time ΨB≠Ø, the hub updates the current best adjustment/termination option pair (ΦU, ΨU) only when the adjustment/termination option pair (ΦB, ΨB) would maintain higher priority flows within the BAN.
In determining whether an update should occur, the hub sorts ΨB and ΨU in descending order based on their flows' priorities. The hub performs a pairwise comparison of the priorities of each vector, ΨB and ΨU. In various embodiments, the hub performs pairwise comparison until the end of the shorter of the two vectors. If, at any comparison, the flow in ΨU has a higher priority than its counterpart in ΨB, the hub updates the current best adjustment/termination option pair (ΦU, ΨU) by values (ΦB, ΨB) , since the latter set of flows would be a better option to terminate. If the pairwise comparison shows the flow in ΨU has a lower priority than its counterpart in ΨB, the hub can stop the update procedure at 712 and continue with the admission control scheme 750. If all comparisons for the duration of the comparison result in a tie between counterpart entries in the two vectors, the hub may update the current best adjustment/termination option pair (ΦU, ΨU) if ΨB is smaller in size than ΨU. This solution is an effort to keep a maximal number of flows within the BAN. If both vectors contain the same number of entries (i.e., both are of the same size), the hub may compare the flows' tolerable delays and, if still tied, the flows' allocation slot sizes, or the hub may compare the flows' allocation slot sizes and, if still tied, the flows' tolerable delays in various embodiments.
As discussed above, the admission control scheme 750 may run through multiple iterations to identify whether any adjustment option ΦB makes available sufficient resources to admit the requesting flow fn. With reference to
Each iteration begins with identifying the next available adjustment option that the hub may assess. At 714, the listing of available adjustment options
In some embodiments, the listing of available adjustment options
Calculating and maintaining a listing of all possible adjustment options, however, may be too excessive for some BAN applications. Calculating all the possible options may take an excessive amount of time, especially given that one of the first options checked may be sufficient to admit the requesting flow, wasting the processing time and resources necessary to generate the entire list. Moreover, this “brute force” approach would result in higher energy consumption. In various embodiments, a computationally efficient process may be utilized to reduce the computational cost of the brute force method.
With reference now to
During the first iteration 810 of
where fiGf
In the example of
E
such that the first entry
If the adjustment option 802 does not free up sufficient resources to admit the requesting flow fn, the hub may check another available adjustment option during each subsequent iteration. As discussed above, the listing of available adjustment options
During the first iteration 810, the first entry
fiGf
where Gf, >Gyf
In some situations, the first entry
Each of the new adjustment options includes all fi∈
where each entry is to be added to the listing of adjustment options
The hub may determine how many and what kind of adjustment options to add to the listing of available adjustment options
Where the first entry
∀X∈(Ω), add new entry {
Iteration 830 of
(Ω)
Referring back to
Where
In various embodiments, the hub may check to see if the identified best termination option ΨU is a null set at 720. If ΨU=Ø, that means that there is no termination option ΨB for any available adjustment option ΦB that would free enough resources to admit the requesting flow fn. Accordingly, the hub may reject the requesting flow fn at 722. If ΨU≠Ø, that means that there is a best adjustment/termination option pair (ΦU, ΨU) that would free up sufficient resources to admit the requesting flow fn while still meeting the QoS requirements of all the flows fi∈Fe and fn. Accordingly, the hub may apply the best adjustment option ΦU and best termination option ΨU and admit the requesting flow fn at 724. This would result in greater bandwidth efficiency than mere termination alone, as the greatest number of flows may be admitted without adversely impacting the QoS requirements of all flows.
As discussed above, the connection process 700 of
To address this situation, the connection process may include multiple stages to enable the hub to identify the optimal set of flows and connection parameters throughout an entire frame.
At 904, the hub may perform an initial determination whether there are sufficient resources to admit the requesting flow. As discussed above, where Fr≠Ø there is a chance that an earlier determination of the optimal set of flows and connection parameters may be changed due to a later arriving request to join the BAN from a subsequent flow. In some cases, running through the iterations of the admission process may be too lengthy to send back a result to the BAN device in timely manner (i.e., within SIFS of receiving the request). Moreover, the results of the admission process may be overridden by a later received join request. Therefore, sending multiple connection response messages, such as the connection response message discussed above with respect to
If the hub determines that there are sufficient resources to admit the requesting flow, the temporary response comprising a connection response message may be sent at 906. The temporary response may contain the information contained in the connection response message discussed with respect to
If the hub determines that there is insufficient resources to admit the requesting flow, the temporary response comprising an acknowledgement (ACK) message may be sent at 910. In various embodiments, the ACK message may simply indicate that the hub has received the request message. In some embodiments, the ACK message may include one or more additional indicators, for example, including but not limited to: estimated time to respond; time of reception; number of request from other flows; among others.
Following the temporary message comprising the ACK is sent, the hub may run the admission control scheme at 912. The ACK enables the hub to have sufficient time to run the admission control scheme without leaving the requesting BAN device in limbo as to the status of its request message. In some embodiments, the admission control scheme may be similar to the admission control scheme 750 discussed above with respect to
Based on the result of the admission control scheme at 912, the requesting flow fn may be admitted into the BAN, one or more flows from the set of existing flows Fe may be terminated, and/or connection parameters of one or more flows in the set of admitted flows Fa, may be adjusted. Therefore, the hub may update the set of admitted flows Fa and the set of requesting flows residing in the BAN prior to fn's join request Fr at 814 based on the result of the admission control scheme at 812. The update ensures that the hub is aware of the current state of the BAN based on received requests when determining whether to admit each subsequent flow received within the unreserved period of the frame. Therefore, the hub may ensure that the optimal set of flows still meeting the QoS requirements of the heterogeneous flows may be admitted into the BAN in the next frame, increasing bandwidth efficiency.
One or more update procedures may occur at 914, depending on the result of the admission control scheme. In some cases, the admission control scheme may determine that the requesting flow may be admitted merely by adjusting the connection parameters of one or more flows. In such cases, the update procedure at 914 may merely add the requesting flow fn to the set of admitted flows Fa, similar to the update procedure at 908.
In other cases, the hub may determine that the requesting flow may be admitted through a combination of adjustment and termination. In such embodiments, if the set of terminating flows ΨU satisfies maxf
Fr←Fr∪ΨU and Fa←Fe∪fn−ΨU, (29)
where maxf
In some situations, simply adding and deleting flows may not be sufficient to address the situation because the termination of flows identified in ΨU may result in further admissions and terminations. Accordingly, the hub may implement a more involved update procedure at 914 to address this situation.
At 1004, the hub may identify flows to reconsider and populate a listing of flows for reconsideration Ftemp. The listing Ftemp may include all flows in Fr∪ΨU that have a lower rank than the maximum rank of flows in ΨU (maxf
In various embodiments, the flows for reconsideration may be identified. For example, in some embodiments the hub may determine which flows to reconsider based on verification of the below if-clause:
(fi∈Fr)?(CHKf
where CHKf
At 1008, the hub selects the first entry Ftemp [0] in the listing Ftemp and, at 1010, determines whether the flow is to be reconsidered. For example, where the hub determines whether to reconsider a flow based on (30), the hub may determine whether the CHKF
Where CHKF
Where the hub determines that the first entry Ftemp[0] may be admitted at 1014, the hub may update the set of admitted flows Fa, the set of requesting flows Fr, and the listing Ftemp at 1018. In some embodiments, the hub may update the different listings as follows:
Fa←Fa∪Ftemp[0]−ΨUtemp, (31)
Fr←Fr−Ftemp[0]∪ΨUtemp, (32)
mark CHKf
append each fi∈ΨUtemp to the end of Ftemp, (34)
mark CHKf
where ΨUtemp represents the set of terminated flows when the first entry Ftemp[0] is admitted. In (31) and (32), the first entry Ftemp[0] is added to Fa and removed from Fr. As can be seen in (33), (34), and (35), the hub may update the listing Ftemp for use in subsequent iterations. The hub may mark the flows in Ftemp with rank lower than the flows in ΨUtemp for reconsideration (e.g., CHKf
As used herein, the term set may refer to any collection of elements, whether finite or infinite. The term subset may refer to any collection of elements, wherein the elements are taken from a parent set; a subset may be the entire parent set. The term proper subset refers to a subset containing fewer elements than the parent set. The term sequence may refer to an ordered set or subset. The terms less than, less than or equal to, greater than, and greater than or equal to, may be used herein to describe the relations between various objects or members of ordered sets or sequences; these terms will be understood to refer to any appropriate ordering relation applicable to the objects being ordered.
As used herein, the term component might describe a given unit of functionality that can be performed in accordance with one or more embodiments of the technology disclosed herein. As used herein, a component might be implemented utilizing any form of hardware, software, or a combination thereof. For example, one or more processors, controllers, ASICs, PLAs, PALs, CPLDs, FPGAs, logical components, software routines or other mechanisms might be implemented to make up a component. In implementation, the various components described herein might be implemented as discrete components or the functions and features described can be shared in part or in total among one or more components. In other words, as would be apparent to one of ordinary skill in the art after reading this description, the various features and functionality described herein may be implemented in any given application and can be implemented in one or more separate or shared components in various combinations and permutations. Even though various features or elements of functionality may be individually described or claimed as separate components, one of ordinary skill in the art will understand that these features and functionality can be shared among one or more common software and hardware elements, and such description shall not require or imply that separate hardware or software components are used to implement such features or functionality.
Where components or components of the technology are implemented in whole or in part using software, in one embodiment, these software elements can be implemented to operate with a computing or processing component capable of carrying out the functionality described with respect thereto. One such example computing component is shown in
Referring now to
Computing component 1100 might include, for example, one or more processors, controllers, control components, or other processing devices, such as a processor 1104. Processor 1104 might be implemented using a general-purpose or special-purpose processing engine such as, for example, a microprocessor, controller, or other control logic. In the illustrated example, processor 1104 is connected to a bus 1102, although any communication medium can be used to facilitate interaction with other components of computing component 1100 or to communicate externally.
Computing component 1100 might also include one or more memory components, simply referred to herein as main memory 1108. For example, preferably random access memory (RAM) or other dynamic memory, might be used for storing information and instructions to be executed by processor 1104. Main memory 1108 might also be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 1104. Computing component 1100 might likewise include a read only memory (“ROM”) or other static storage device coupled to bus 1102 for storing static information and instructions for processor 1104.
The computing component 1100 might also include one or more various forms of information storage mechanism 1110, which might include, for example, a media drive 1112 and a storage unit interface 1120. The media drive 1112 might include a drive or other mechanism to support fixed or removable storage media 1114. For example, a hard disk drive, a floppy disk drive, a magnetic tape drive, an optical disk drive, a CD or DVD drive (R or RW), or other removable or fixed media drive might be provided. Accordingly, storage media 1114 might include, for example, a hard disk, a floppy disk, magnetic tape, cartridge, optical disk, a CD or DVD, or other fixed or removable medium that is read by, written to or accessed by media drive 1112. As these examples illustrate, the storage media 1114 can include a computer usable storage medium having stored therein computer software or data.
In alternative embodiments, information storage mechanism 1110 might include other similar instrumentalities for allowing computer programs or other instructions or data to be loaded into computing component 1100. Such instrumentalities might include, for example, a fixed or removable storage unit 1122 and an interface 1120. Examples of such storage units 1122 and interfaces 1120 can include a program cartridge and cartridge interface, a removable memory (for example, a flash memory or other removable memory component) and memory slot, a PCMCIA slot and card, and other fixed or removable storage units 1122 and interfaces 1120 that allow software and data to be transferred from the storage unit 1122 to computing component 1100.
Computing component 1100 might also include a communications interface 1124. Communications interface 1124 might be used to allow software and data to be transferred between computing component 1100 and external devices. Examples of communications interface 1124 might include a modem or softmodem, a network interface (such as an Ethernet, network interface card, WiMedia, IEEE 802.XX or other interface), a communications port (such as for example, a USB port, IR port, RS232 port Bluetooth® interface, or other port), or other communications interface. Software and data transferred via communications interface 1124 might typically be carried on signals, which can be electronic, electromagnetic (which includes optical) or other signals capable of being exchanged by a given communications interface 1124. These signals might be provided to communications interface 1124 via a channel 1128. This channel 1128 might carry signals and might be implemented using a wired or wireless communication medium. Some examples of a channel might include a phone line, a cellular link, an RF link, an optical link, a network interface, a local or wide area network, and other wired or wireless communications channels.
In this document, the terms “computer program medium” and “computer usable medium” are used to generally refer to media such as, for example, memory 1108, storage unit 1120, media 1114, and channel 1128. These and other various forms of computer program media or computer usable media may be involved in carrying one or more sequences of one or more instructions to a processing device for execution. Such instructions embodied on the medium, are generally referred to as “computer program code” or a “computer program product” (which may be grouped in the form of computer programs or other groupings). When executed, such instructions might enable the computing component 1100 to perform features or functions of the disclosed technology as discussed herein.
While various embodiments of the disclosed technology have been described above, it should be understood that they have been presented by way of example only, and not of limitation. Likewise, the various diagrams may depict an example architectural or other configuration for the disclosed technology, which is done to aid in understanding the features and functionality that can be included in the disclosed technology. The disclosed technology is not restricted to the illustrated example architectures or configurations, but the desired features can be implemented using a variety of alternative architectures and configurations. Indeed, it will be apparent to one of skill in the art how alternative functional, logical or physical partitioning and configurations can be implemented to implement the desired features of the technology disclosed herein. Also, a multitude of different constituent component names other than those depicted herein can be applied to the various partitions. Additionally, with regard to flow diagrams, operational descriptions and method claims, the order in which the steps are presented herein shall not mandate that various embodiments be implemented to perform the recited functionality in the same order unless the context dictates otherwise.
Although the disclosed technology is described above in terms of various exemplary embodiments and implementations, it should be understood that the various features, aspects and functionality described in one or more of the individual embodiments are not limited in their applicability to the particular embodiment with which they are described, but instead can be applied, alone or in various combinations, to one or more of the other embodiments of the disclosed technology, whether or not such embodiments are described and whether or not such features are presented as being a part of a described embodiment. Thus, the breadth and scope of the technology disclosed herein should not be limited by any of the above-described exemplary embodiments.
Terms and phrases used in this document, and variations thereof, unless otherwise expressly stated, should be construed as open ended as opposed to limiting. As examples of the foregoing: the term “including” should be read as meaning “including, without limitation” or the like; the term “example” is used to provide exemplary instances of the item in discussion, not an exhaustive or limiting list thereof; the terms “a” or “an” should be read as meaning “at least one,” “one or more” or the like; and adjectives such as “conventional,” “traditional,” “normal,” “standard,” “known” and terms of similar meaning should not be construed as limiting the item described to a given time period or to an item available as of a given time, but instead should be read to encompass conventional, traditional, normal, or standard technologies that may be available or known now or at any time in the future. Likewise, where this document refers to technologies that would be apparent or known to one of ordinary skill in the art, such technologies encompass those apparent or known to the skilled artisan now or at any time in the future.
The presence of broadening words and phrases such as “one or more,” “at least,” “but not limited to” or other like phrases in some instances shall not be read to mean that the narrower case is intended or required in instances where such broadening phrases may be absent. The use of the term “component” does not imply that the components or functionality described or claimed as part of the component are all configured in a common package. Indeed, any or all of the various components of a component, whether control logic or other components, can be combined in a single package or separately maintained and can further be distributed in multiple groupings or packages or across multiple locations.
Additionally, the various embodiments set forth herein are described in terms of exemplary block diagrams, flow charts and other illustrations. As will become apparent to one of ordinary skill in the art after reading this document, the illustrated embodiments and their various alternatives can be implemented without confinement to the illustrated examples. For example, block diagrams and their accompanying description should not be construed as mandating a particular architecture or configuration.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US15/64099 | 12/4/2015 | WO | 00 |