摘要:
A method for suspending data transmission on a client device comprising: designating certain sockets within a socket layer on the client device as opportunistic and other sockets as non-opportunistic; detecting that a network interface is being throttled by utilizing flow feedback from a layer beneath the socket layer; and responsively suspending any opportunistic sockets while the network interface is throttled.
摘要:
A client device having a networking layer and a network driver layer for transmitting network packets comprising: a plurality of transmit queues configured at the network layer, each of the transmit queues having different packet service classifications associated therewith; a classifier module for classifying packets according to the different packet service classifications, wherein a packet to be transmitted is stored in one of the transmit queues based on the packet service classifications, wherein one or more of the traffic service classifications comprise opportunistic traffic classes and other traffic service classifications comprise non-opportunistic traffic classes; and a socket layer comprising socket transmitting data from an application associated with each traffic service classification, wherein a socket associated with an opportunistic traffic class is automatically suspended in response to detecting a network interface of the client device being throttled.
摘要:
A client device having a networking layer and a network driver layer for transmitting network packets comprising: a plurality of transmit queues configured at the network layer, each of the transmit queues having different packet service classifications associated therewith, packets being queued in one of the transmit queues according to traffic service classifications assigned to the packets; a classifier module for classifying packets according to the different packet service classifications, wherein a packet to be transmitted is stored in one of the transmit queues based on the packet service classifications; and a network layer packet scheduler for scheduling packets for transmission from each of the transmit queues at the networking layer, the network layer packet scheduler scheduling packets for transmission according to the packet service classifications.
摘要:
A method for receiving network packets on a client device comprising: initially entering into a first mode of operation in which polling from a network layer to a driver layer is disabled, wherein in the first mode of operations data packets received by the driver layer are pushed up to the network layer; monitoring a load factor defining a current network load on the client device; and entering into a second mode of operation in which polling from the network layer to the driver layer is enabled, wherein when in the second mode of operation, the network layer polling the driver layer when it is ready to accept new packets from the driver layer.
摘要:
A method for efficiently transmitting packets from a client device comprising: receiving a packet at a network transport layer of a client device; calculating a flow hash value for the packet, the flow hash value associating the packet with a particular network flow, the flow hash value usable to track the packet and other packets associated with the particular network flow; receiving feedback for the flow from a layer below the network transport layer of the client device, the flow being identified using the flow hash value, the feedback indicating queuing conditions associated with the flow; and adjusting built in backoff mechanisms normally provided by the network socket layer based on the current queuing conditions.
摘要:
A data processing device for transmitting network packets comprising: packet classification logic for classifying packets according to different packet service classifications, wherein a packet to be transmitted is stored in one or more transmit queues based on the packet service classifications and wherein each packet is associated with a particular flow; and queue management logic for queuing packets in the one or more transmit queues utilizing a flow control policy implemented on a per-flow basis, wherein a number of queued packets for each flow is monitored and when the number of queued packets for a particular flow reaches a specified threshold, then flow control for that particular flow is turned on, and wherein the queue management logic implements a stochastic fair blue (SFB) algorithm to track the number of packets within each transmit queue.
摘要:
A client device having a networking layer and a network driver layer for transmitting network packets comprising: a plurality of transmit queues configured at the network layer, each of the transmit queues having different packet service classifications associated therewith, packets being queued in one of the transmit queues according to traffic service classifications assigned to the packets; a classifier module for classifying packets according to the different packet service classifications, wherein a packet to be transmitted is stored in one of the transmit queues based on the packet service classifications; and a network layer packet scheduler for scheduling packets for transmission from each of the transmit queues at the networking layer, the network layer packet scheduler scheduling packets for transmission according to the packet service classifications.
摘要:
A method implemented on a client device having a networking layer and a network driver layer for transmitting network packets comprising: receiving a packet to be transmitted from the client device to a destination over a network socket; classifying the packet according to an implicit packet service classification provided by the networking layer or a user-specific packet service classification explicitly specified by an application, the implicit classification having a default traffic classification queue and default scheduler associated therewith and the user-specified classification having a user-specified traffic classification and user-specified scheduler associated therewith; and enqueuing and scheduling the packet for transmission according to either the default or the user-specific traffic classifications.
摘要:
A method for receiving network packets on a client device comprising: initially entering into a first mode of operation in which polling from a network layer to a driver layer is disabled, wherein in the first mode of operations data packets received by the driver layer are pushed up to the network layer; monitoring a load factor defining a current network load on the client device; and entering into a second mode of operation in which polling from the network layer to the driver layer is enabled, wherein when in the second mode of operation, the network layer polling the driver layer when it is ready to accept new packets from the driver layer.
摘要:
A data processing device for transmitting network packets comprising: packet classification logic for classifying packets according to different packet service classifications, wherein a packet to be transmitted is stored in one or more transmit queues based on the packet service classifications and wherein each packet is associated with a particular flow; and queue management logic for queuing packets in the one or more transmit queues utilizing a flow control policy implemented on a per-flow basis, wherein a number of queued packets for each flow is monitored and when the number of queued packets for a particular flow reaches a specified threshold, then flow control for that particular flow is turned on, and wherein the queue management logic implements a stochastic fair blue (SFB) algorithm to track the number of packets within each transmit queue.