Abstract:
A method for implementing a packet I/O engine on a programmable computing platform is provided, where the engine performs I/O functions for plural threads generated by a plurality of user applications. In the method, the platform is configured such that only one thread is permitted to initialize and configure the resources. Furthermore, I/O-device queues each for buffering packets either transmitted to or received from an individual external I/O device are set up. For a plurality of unsafe I/O-device queues determined, among the I/O-device queues, to be multi-thread unsafe, a plurality of multi-producer, multi-consumer software queues for buffering packets delivered between the plurality of the unsafe I/O-device queues and the plurality of user applications is set up. In particular, the plurality of multi-producer, multi-consumer software queues is configured such that the unsafe I/O-device queues are collectively synchronized to maintain data consistency in packet delivery in the presence of multiple threads.
Abstract:
In widely deployed wireless “hot-spot” networks, nodes frequently join or leave, inelastic/elastic and saturated/non-satuarted flows coexist. In such dynamic and diverse environments, it is challenging to maximize the channel utilization while providing satisfactory user experiences. In this invention, one proposes a novel contention-on-demand (CoD) MAC scheme to address this problem. The CoD scheme consists of a fixed-CW algorithm, a dynamic-CW algorithm, and an admission control unit. The fixed-CW algorithm allows elastic flows to access limited system bandwidth; the dynamic-CW algorithm enables inelastic flows to contend for channel on demand and quickly adapt to network change; and the admission control unit rejects overloaded traffic for providing good user experiences. One then performs an asymptotic analysis to develop a simple but efficient admission control rule. Finally, extensive simulations verify that the scheme is very effective and the theoretical result is very accurate.
Abstract:
A method for enabling one or more nodes to communicate with an access point (AP) according to a CSMA/CA protocol is provided. In one embodiment of the method, when the individual node enters into a state of having at least one packet of data to be transmitted to the AP, the individual node waits for a non-zero deterministic delay so that any packet arrived during the delay is allowed to be aggregated and transmitted upon one transmission opportunity, thereby improving channel utilization. The delay is determined such that a predicted system throughput is maximized. It is found that the system throughput is significantly affected by the relationship between the delay and the number of the one or more nodes. Hence, the delay is advantageously determined according to the number of the one or more nodes. After the delay expires, the individual node initiates a contending procedure.
Abstract:
Compute-intensive packet processing (CIPP) in a computer system comprising a programmable computing platform is accelerated by using a packet I/O engine, implemented on the platform, to perform packet I/O functions, where the packet I/O engine is configured to achieve direct access to a network interface card (NIC) from a user application. For a Linux-based computer system, standard I/O mechanisms of Linux are bypassed and only the packet I/O engine is used in performing the I/O functions. Furthermore, the computer system is configured to: process a batch of packets, instead of packet by packet, in every function call; and when moving a packet between a buffer of an individual user application and a queue of the packet I/O engine, copy a packet descriptor of the packet instead the entire packet. In addition, workflows across different working threads are balanced and parallelism is exploited to fully utilize resources of the platform.
Abstract:
A method for enabling one or more nodes to communicate with an access point (AP) according to a CSMA/CA protocol is provided. In one embodiment of the method, when the individual node enters into a state of having at least one packet of data to be transmitted to the AP, the individual node waits for a non-zero deterministic delay so that any packet arrived during the delay is allowed to be aggregated and transmitted upon one transmission opportunity, thereby improving channel utilization. The delay is determined such that a predicted system throughput is maximized. It is found that the system throughput is significantly affected by the relationship between the delay and the number of the one or more nodes. Hence, the delay is advantageously determined according to the number of the one or more nodes. After the delay expires, the individual node initiates a contending procedure.
Abstract:
A method for implementing a packet I/O engine on a programmable computing platform is provided, where the engine performs I/O functions for plural threads generated by a plurality of user applications. In the method, the platform is configured such that only one thread is permitted to initialize and configure the resources. Furthermore, I/O-device queues each for buffering packets either transmitted to or received from an individual external I/O device are set up. For a plurality of unsafe I/O-device queues determined, among the I/O-device queues, to be multi-thread unsafe, a plurality of multi-producer, multi-consumer software queues for buffering packets delivered between the plurality of the unsafe I/O-device queues and the plurality of user applications is set up. In particular, the plurality of multi-producer, multi-consumer software queues is configured such that the unsafe I/O-device queues are collectively synchronized to maintain data consistency in packet delivery in the presence of multiple threads.
Abstract:
In widely deployed wireless “hot-spot” networks, nodes frequently join or leave, inelastic/elastic and saturated/non-satuarted flows coexist. In such dynamic and diverse environments, it is challenging to maximize the channel utilization while providing satisfactory user experiences. In this invention, one proposes a novel contention-on-demand (CoD) MAC scheme to address this problem. The CoD scheme consists of a fixed-CW algorithm, a dynamic-CW algorithm, and an admission control unit. The fixed-CW algorithm allows elastic flows to access limited system bandwidth; the dynamic-CW algorithm enables inelastic flows to contend for channel on demand and quickly adapt to network change; and the admission control unit rejects overloaded traffic for providing good user experiences. One then performs an asymptotic analysis to develop a simple but efficient admission control rule. Finally, extensive simulations verify that the scheme is very effective and the theoretical result is very accurate.
Abstract:
Compute-intensive packet processing (CIPP) in a computer system comprising a programmable computing platform is accelerated by using a packet I/O engine, implemented on the platform, to perform packet I/O functions, where the packet I/O engine is configured to achieve direct access to a network interface card (NIC) from a user application. For a Linux-based computer system, standard I/O mechanisms of Linux are bypassed and only the packet I/O engine is used in performing the I/O functions. Furthermore, the computer system is configured to: process a batch of packets, instead of packet by packet, in every function call; and when moving a packet between a buffer of an individual user application and a queue of the packet I/O engine, copy a packet descriptor of the packet instead the entire packet. In addition, workflows across different working threads are balanced and parallelism is exploited to fully utilize resources of the platform.