Abstract:
A transmission method adjusts the size of aggregated packets based at least on the congestion of a transmitting network device. The adjusting comprises includes aggregating at least two small messages, received from an upper layer, into a packet, providing the packet to a pending queue, passing packets to a network device and selecting packets from the pending queue or the buffer depending on whether or not said pending queue is empty.

Description:
FIELD OF THE INVENTION  
       [0001]     The present invention relates generally to transmission of short messages on a data network and to minimal delay therein in particular.  
       BACKGROUND OF THE INVENTION  
       [0002]     Data networks, like the Internet or any intranet, are well known. Sending short messages at high rates on data networks causes inefficient utilization of end-to-end network resources. The processor on the transmitting end performs a fixed amount of processing work for each message irrespective of the length of the message. The same is true for the Network Interface Card (NIC) of the transmitting unit. The receiver end behaves the same way. The longer the message is, the fewer the resources consumed by the receiver, per unit length.  
         [0003]     One known solution is to aggregate short messages into large bundles and to transmit each bundle as a single packet. Unfortunately, to do so, the transmitter must wait until enough short messages accumulate before transmitting the bundle. This can cause unacceptable delays at the receiver.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0004]     The subject matter regarded as the invention is particularly pointed out and distinctly claimed in the concluding portion of the specification. The invention, however, both as to organization and method of operation, together with objects, features, and advantages thereof, may best be understood by reference to the following detailed description when read with the accompanying drawings in which:  
         [0005]      FIGS. 1A and 1B  are schematic illustrations of a transmission system and method, constructed and operative in accordance with the present invention, in two states, high submission rates and low submission rates, respectively; and  
         [0006]      FIG. 2  is a schematic illustration of a transmission system and method, constructed and operative in accordance with an alternative embodiment of the present invention. 
     
    
       [0007]     It will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or analogous elements.  
       DETAILED DESCRIPTION OF THE INVENTION  
       [0008]     In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, it will be understood by those skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, and components have not been described in detail so as not to obscure the present invention.  
         [0009]     Reference is now made to  FIGS. 1A and 1B , which, together, illustrate a transmission protocol and network elements to minimize packet delay due to short messages. In the embodiment of  FIGS. 1A and 1B , a multi-threaded architecture is shown, having an aggregation thread  10  and a fireout thread  12 . Threads  10  and  12  may operate in conjunction with a pending queue  14  and a network interface card (NIC)  16 , where the latter interfaces with a network  18 .  
         [0010]     As shown in  FIG. 1A , aggregation thread  10  may receive short messages  20  from an application or “upper layer” (not shown) and, utilizing a buffer  21 , may aggregate a group of them into a packet  22 , where each packet may contain N short messages  20 . N may be any suitable number, such as at least one and preferably, significantly more than one. Aggregation thread  10  may then transfer insert aggregated packet  22  from buffer  21  into pending queue  14 . Pending queue  14  may be a shared queue which may store packets  22  to be transmitted.  
         [0011]     Fireout thread  12  may remove packets  22  from queue  14  and may pass them on to NIC  16 , which, in turn may transmit them to network  18 . Fireout thread  12  may respond to the activity of NIC  16  and may change its operation as a result, either speeding up or slowing down as relevant. In an example, when NIC  16  may be unable to transmit the messages in its buffer, fireout thread  12  may stop transferring messages to it.  
         [0012]     In effect, fireout thread  12  may change its operation as a function of network congestion, where “network congestion” may mean transmitter congestion (from the operating system&#39;s network stack and/or interface card), receiver congestion and/or congestion of the network elements (like routers and switches) between the two. If the upper layer may produce short messages  20  at a slow rate, as shown in  FIG. 1B , aggregation thread  10  may fill pending queue  14  more slowly and pending queue  14  may clear out. Fireout thread  12  may monitor the state of pending queue  14  and, when there are no more packets in pending queue  14 , may remove the partial packet, labeled  30 , from buffer  21 . Fireout thread  12  may then pass partial packet  30  to NIC  16  for transmission. This may reduce the delay caused by aggregation thread  10  to zero. With aggregation thread  10  doing little, if any, aggregation, the network resources may not be efficiently utilized. However, the low submission rate from the upper layer may imply that the network may not currently be working at high utilization in any case and therefore, the resources may be utilized less efficiently without causing congestion.  
         [0013]     At high submission rates, as shown in  FIG. 1A , NIC  16  may be congested which may cause fireout thread  12  to be delayed. Pending queue  14  may fill up with large packets. These larger packets may result in better end-to-end network resource utilization, in a higher transmission rate and may reduce the congestion at NIC  16  and on network  18 .  
         [0014]     Reference is now made to  FIG. 2 , which illustrates an alternative embodiment of the present invention in which a response from the receiver may also be utilized to affect the operation of fireout thread  12 . Similar reference numerals may refer to similar elements.  
         [0015]      FIG. 2  may include the elements of  FIGS. 1A and 1B  with the addition of a reception monitor  40  monitoring transmissions from a receiver  42  with whom the transmitter may be communicating. Reception monitor  40  may be any suitable reception monitor such as are common in transmitters for determining whether or not receiver  42  received a particular packet. One common protocol that reception monitor  40  may perform may be the ACK protocol, wherein receiver  42  may acknowledge each packet as it may receive it. Another protocol may be the NACK protocol, wherein receiver  42  may only transmit a signal when it does not receive an expected packet. Other protocols exist and may be utilized by reception monitor  40 .  
         [0016]     In the present invention, monitor  40  may indicate to fireout thread  12  whenever receiver  42  may indicate that it is having reception trouble. This may be trouble keeping up with the transmissions of NIC  16  or whenever it appears that the network is having trouble transmitting the messages to receiver  42 . Fireout thread  12  may then become slower, giving aggregation thread  10  more time to fill up packets. This may eventually make transmission and reception more efficient.  
         [0017]     While certain features of the invention have been illustrated and described herein, many modifications, substitutions, changes, and equivalents will now occur to those of ordinary skill in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true spirit of the invention.