Selectively enabling packet concatenation based on a transaction boundary
First Claim
1. A network device for communicating data over a network, comprising:
- a transceiver to send and receive data over the network; and
a processor that is operative to perform actions, comprising;
monitoring for an application layer transaction boundary, wherein monitoring for the application layer transaction boundary comprises detecting an indicator of a beginning of an application layer transaction;
receiving a first packet of data for transmission over the network;
selectively combining data of the first packet with data of a subsequently received second packet at least partly based on a result of the monitoring for the application layer transaction boundary, wherein the first packet and the second packet include data for the application layer transaction,based on a determined criteria, sending over the network a write completion indicator within the selectively combined data packet; and
in response to receiving an undelayed acknowledgement (ACK) in response to the sent write completion indicator, sending a short packet of data over the network.
1 Assignment
0 Petitions
Accused Products
Abstract
A system, apparatus, and method are directed towards selectively combining data into a packet to modify a number of packets transmitted over a network based on a detection of a transaction boundary. If it is determined to concatenate the data, such concatenation may continue until an acknowledgement (ACK) is received, or a predetermined amount of data is concatenated in the packet, or a transaction boundary is detected. If at least one of these conditions is satisfied, concatenation may be inhibited, and the packet may be sent. Concatenation is then re-enabled. In one embodiment, Nagle'"'"'s algorithm is used for concatenating data into a packet. In one embodiment, an ACK may be sent based on a write completion indicator included within a packet. Receipt of the ACK may disable concatenation.
251 Citations
20 Claims
-
1. A network device for communicating data over a network, comprising:
-
a transceiver to send and receive data over the network; and a processor that is operative to perform actions, comprising; monitoring for an application layer transaction boundary, wherein monitoring for the application layer transaction boundary comprises detecting an indicator of a beginning of an application layer transaction; receiving a first packet of data for transmission over the network; selectively combining data of the first packet with data of a subsequently received second packet at least partly based on a result of the monitoring for the application layer transaction boundary, wherein the first packet and the second packet include data for the application layer transaction, based on a determined criteria, sending over the network a write completion indicator within the selectively combined data packet; and in response to receiving an undelayed acknowledgement (ACK) in response to the sent write completion indicator, sending a short packet of data over the network. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method of communicating data over a network, comprising:
-
monitoring for an end and a beginning of an application layer transaction; receiving a first packet of data for transmission over the network; and if the end and the beginning of the application layer transaction are undetected, combining data of the first packet with data of a subsequently received second packet, wherein the first packet and the second packet include data for the application layer transaction; based on a determined criteria, sending over the network a write completion indicator within the selectively combined data packet; and receiving an undelayed acknowledgement (ACK) in response to the sent write completion indicator, and in response, sending a short packet of data over the network. - View Dependent Claims (12, 13)
-
-
14. A client device for communicating data over a network, comprising:
-
a transceiver to send and receive data; and a processor that is operative to perform actions, including; monitoring data at an OSI layer 7 application layer for an application layer transaction boundary, wherein the monitoring comprises detecting an indicator of a start of an OSI layer 7 application layer transaction; and until the application layer transaction boundary is detected, combining data with other data into packets for a predetermined amount of data, and sending the packets over the network, wherein the data and the other data are for the same application layer transaction; based on a determined criteria, further sending over the network a write completion indicator within the selectively combined data packet; and in response to receiving an undelayed acknowledgement (ACK) in response to the sent write completion indicator, sending a short packet of data over the network. - View Dependent Claims (15, 16, 17)
-
-
18. A network device for communicating data over a network, comprising:
a processor that is operative to perform actions, including; receiving a first packet of data; combining the data of the first packet with data from another packet into a network packet until at least one of the network packet is full, an application layer transaction boundary is detected, or an acknowledgement (ACK) is received, wherein the detected application layer transaction boundary comprises a detected indicator of a beginning of an application layer transaction that is defined in an application layer protocol, and wherein the first packet and the other packet include data for the application layer transaction; and sending with the combined data a write completion indicator; and in response to receiving an undelayed ACK in response to the sent write completion indicator, sending data from a subsequent packet uncombined with data from another packet.
-
19. An apparatus for communicating data over a network, comprising:
-
a processor that is operative to perform actions, comprising; receiving data for transmission over the network; and monitoring application layer data for detection of an application layer transaction boundary, wherein the monitoring includes detecting an indicator of a beginning of an application layer transaction; means for selectively concatenating data with other data at least in part while the application layer transaction boundary is undetected, wherein the data and the other data are for the application layer transaction; means for selectively sending with the concatenated data a write completion indicator; and means for selectively sending a short packet of data over the network based on receiving an undelayed ACK in response to sending the write completion indicator.
-
-
20. A client device for communicating data over a network, comprising:
-
a transceiver to send and receive data; and a processor that is operative to perform actions, including; monitoring data at an OSI layer 7 application layer for a detection of an application layer transaction boundary, wherein the monitoring comprises detecting an indicator of a beginning of an application layer transaction; selectively combining data with other data into packets for a predetermined amount of data based in part on the detection of the application layer transaction boundary, wherein the data and the other data are for the application layer transaction; selectively sending with the concatenated data a write completion indicator based on a completion criteria; and selectively sending a short packet of data over the network based on receiving an undelayed ACK that is in response to sending the write completion indicator.
-
Specification