CA2385470C - Message piggybacking during transport medium congestion - Google Patents

Message piggybacking during transport medium congestion Download PDF

Info

Publication number
CA2385470C
CA2385470C CA002385470A CA2385470A CA2385470C CA 2385470 C CA2385470 C CA 2385470C CA 002385470 A CA002385470 A CA 002385470A CA 2385470 A CA2385470 A CA 2385470A CA 2385470 C CA2385470 C CA 2385470C
Authority
CA
Canada
Prior art keywords
computer
messages
sending
transport medium
addressed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CA002385470A
Other languages
French (fr)
Other versions
CA2385470A1 (en
Inventor
Jon Maloy
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of CA2385470A1 publication Critical patent/CA2385470A1/en
Application granted granted Critical
Publication of CA2385470C publication Critical patent/CA2385470C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • H04L49/9089Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
    • H04L49/9094Arrangements for simultaneous transmit and receive, e.g. simultaneous reading/writing from/to the storage element
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

A computer (30(1)) detects congestion (50, 80) on a network transport medium (32) and in response thereto refrains from sending any packets containing messages. These to be transmitted messages are instead stored (56, 84) by the computer in memory (40). In one embodiment, each message addressed to the same destination addressee computer is stored (84) in a common buffer (38), with a different buffer being allocated to each identified destination addressee computer (30(2) and 30(3)) for the to be transmitted messages. In another embodiment, each such message is encapsulated (54) into a single packet (36) that is stored (56) in the reserved portion. When the congestion condition on the transport medium subsides (58, 86), the one or more messages stored within a given buffer are retrieved from memory and encapsulated (104) within a single packet (36) addressed to the destination addressee computer associated with that given buffer. Alternatively, the stored single packet is retrieved from memory. That single packet is then sent (76, 106) over the transport medium to the identified destination addressee computer.

Description

MESSAGE PIGGYBACHING DURING TRANSPORT MEDIUM
CONGESTION
BACKGROUND OF THE INVENTION
Technical Field of the Invention The present invention relates to network connected computers and, in particular, to an improved scheme for networked computer communications during instances of communications medium congestion.
Description of Related Art Packet communications protocols are commonly utilized to handle data communications between network connected computers. More likely than not, average packet length for such inter-computer communications is relatively short. One problem that has been noted with respect to such short packet length communications is that both computer central processing unit (CPU) capacity and transport medium bandwidth tend to be poorly utilized. This situation is further aggravated when the transport medium becomes congested (e.g., due to ethernet packet collisions).
The reason for this is that the basic CPU and transport medium circuit work effort required to send each packet must be repeated for each packet send attempt, regardless of 2 0 whether the send attempt is successful. More specifically, this work load includes a fixed part associated with each packet send that always has to be performed, irrespective of packet length. When the average message length is short, as is the common occurrence for network connected computer data communications, the handling of this fixed part represents the dominant part of the workload being 2 5 performed with respect to each transmission attempt. There would accordingly be an advantage to reducing this workload, especially in situations where congestion is detected in the transport medium.
At the transport layer of the OSI reference model, it is known that the transport-control protocol (TCP) includes a feature wherein the computer transmission 3 0 of a generated user information message is delayed for a period of time in order to allow subsequent user information messages generated by the same computer port and addressed to the same destination node as that first user information message to be collected together into a single packet for transmission. Activation of this message-delaying feature of TCP is optional. In accordance with this approach, all generated 3 5 user information messages are held back by TCP at the transport layer for a period of time regardless of whether the transmission medium is congested. After the delay period of time expires, collected user information messages generated by the same Tr,- ;.~;~rsci~s~, ~3tant O~
. ;-,.o;r._ '.:~hIIC8ad01'1 computer port and addressed to the same destination node are transmitted within a single packet, while user information messages addressed to different destination computer, or originated from different ports of the computer and addressed to the same destination computer, are transmitted within separate packets. Since the transmission of all generated user information messages is delayed by TCP at the transport layer regardless of whether the transmission medium is congested, this feature is poorly suited for real-time applications.
Publication WO 98139891 teaches an Active Stream Format (ACF) for holding data of multiple media streams. The data is partitioned into packets for transportation over a transport medium.
Publication in IEEE network magazine of May 1990 (pages 24-30) entitled "Congestion Control in Computer Networks: issues and trends", teaches (i) Resource Creation Schemes and (ii) Demand Reduction Schemes, for handling congestion in computer networks.
SUMMARY OF THE INVENTION
When a computer detects congestion on a network transport medium, it refrains from sending packets. Instead, the computer stores any to be transmitted messages in memory. All to be transmitted messages addressed to the same destination addressee 2o computer are stored in the same buffer. Alternatively, each of the messages is encapsulated into a single packet, and that packet is stored in the buffer. In either case, a different buffer is allocated to each identified destination addressee computer for the to be transmitted messages. When the congestion condition on the transport medium subsides, the one or more messages stored within a given buffer are retrieved from memory and encapsulated within a single packet addressed to the destination addressee computer associated with that given buffer. Alternatively, the stored single packet is retrieved from memory. That packet is then sent over the transport medium to the identified destination addressee computer.
3 o BRIEF DESCRIPTION OF THE DRAWINGS
A more complete understanding of the method and apparatus of the present invention may be acquired by reference to the following Detailed Description when taken in conjunction with the accompanying Drawings wherein:
FIGURE 1 is a block diagram of a network connected computer system illustrating a prior art message transmission scheme;
CA 02385470 2002-03-18 ~IE1~1DED SHEEP

The S~vedtsr, ?3tent GTlKw PCT' Intetn8:.;:: ~: : :.,,~~ItCa~pn -2a- 2 7 -11- 2001 FIGURE 2 is a block diagram of a network connected computer system illustrating a message transmission scheme in accordance with a first embodiment of the s present invention;
FIGURE 3 is a block diagram of a network connected computer system illustrating a message transmission scheme in accordance with a second embodiment of the present invention;
1o FIGURES 4A-4D are flow diagrams illustrating operation of the sending computer in accordance with the message transmission schemes of the present invention;
and CA 02385470 2002-03-18 A~:'lEiVflED ShEEf FIGURE 5 is a message flow process diagram illustrating the port independence of the FIGURES 3C-3D process of the present invention.
DETAILED DESCRIPTION OF THE DRAWINGS
Congestion is a relatively common occurrence within the transport media that interconnect network connected computers. When such congestion occurs, message delivery fails, and the sending computer must resend the failed message. In the meantime, the sending computer buffers the message in a reserved portion of memory dedicated to that particular message. If the congestion event causes the failure of several different message delivery events, the computer buffers each such failed message in a separate reserved portion of the memory. This commonly utilized technique for computer generated message transmission is illustrated in FIGURE

wherein there is shown a block diagram of a network connected computer system.
A plurality of computers 10(1)-10(n) are interconnected to each other in a network configuration by at least one transport medium 12. First computer 10(1) desires to send a plurality of messages 14(1)-14(5) to several ones of the other computers 10(2)-10(3). A first of the messages 14(1), for example addressed to computer 10(2), is encapsulated in a packet 16 and sent from the first computer 10( 1 ), but fails to be delivered to the addressee computer 10(2) due to congestion currently being experienced on the transport medium 12. Responsive to such a failure, the first 2 0 computer 10(1) buffers the message 14(1) in a reserved portion 18(1) of its memory 20. The first computer then delays for a certain amount of time before retrieving the message 14( 1 ) from memory 20 and attempting a re-send of the packet 16. In the meantime, the first computer 10(1) may have other messages 14(2)-14(5) to send, and similarly makes unsuccessful attempts (due to continued congestion) at packet 2 5 transmissions to the respective addressee computers 10(2)-10(3). With each such failed attempt at transmission, the first computer 10(1) buffers the messages 14(2)-14(S), each in a separate reserved portion 18(2)-18(5), respectively, of its memory 20, and delays for the specified certain amount of time before attempting a packet 16 re-send.
3 0 Once the specified certain amount of time for each respective message expires, the first computer 10(1) retrieves the messages from memory 20 and attempts a re-send. These attempts are made sequentially starting with the first message 14(1) that was stored, and continuing (in accordance with the specified delay time) until a re-send attempt has been made for each message. If the congestion condition has dissipated, 3 5 these re-send attempts are likely to be successful. In the event, however, that congestion still exists, these re-send attempts may fail. If that happens, the buffering and delay procedure of the prior art transmission scheme is repeated over again until each message is successfully sent.
As discussed previously, the prior art transmission scheme illustrated in FIGURE 1, although eventually securing delivery of each message, leaves much to be desired in terms of efficiency. Whether the transmission attempt is successful or not, a fixed amount of work effort must be expended by the first computer 10(1) and the transport medium 12 for each attempt. When the messages (and hence their corresponding packets) are short in length, the handling of this fixed portion often represents the dominant part of the expended workload, all of which is wasted when delivery fails. A more efficient transmission scheme is accordingly needed to address the re-sending of failed message deliveries caused by media congestion.
Reference is now made to FIGURE 2 wherein there is shown a block diagram of a network connected computer system illustrating a message transmission scheme in accordance with a first embodiment of the present invention. A plurality of computers 30(1)-30(3) are interconnected to each other in a network configuration by at least one transport medium 32. First computer 30(1) has a need over a period of time to send a plurality of messages 34( 1 )-34(5) to several ones of the other computers 30(2)-30(3). A first one of the messages 34(1), for example addressed to computer 30(2), is encapsulated in a packet 36 and sent from the first computer 30(1) and is 2 0 successfully delivered by the transport medium 32 to the addressee second computer 30(2). A second one of the messages 34(2), again for example addressed to computer 30(2), is then encapsulated in apacket 36 and sent from the first computer 30(1), but fails to be delivered to the addressee computer 30(2) due to congestion currently being experienced on the transport medium 32. Responsive to such a failure, the first computer 30(1) buffers the message 34(2) in a reserved portion 38(1) of its memory 40 allocated for second computer 30(2) addressed messages. The size of the allocated buffer portion 38(1) in memory 40 is much larger than is necessary to hold the message 34(2), and in fact is preferably large enough to store several messages. The first computer 30(1) then delays for a requisite amount of time necessary to 3 0 accomplish two goals. The primary goal is let the congestion condition on the transport medium 32 subside before attempting a re-send. The secondary goal is to wait during the experienced congestion condition to see if the first computer 30(1) needs to send during the congestion period any other messages 34 also addressed to the second computer 30(2), and if so to then include those messages (as will be 3 5 discussed in more detail below) in a single packet re-send to the second computer.
A third one of the messages 34(3), addressed for the third computer 30(3), next needs to be sent by the first computer 30( 1 ). Recognizing the continued existence of the congestion condition on the transport medium 32, the first computer 30( 1 ) buffers the message 34(3) in a reserved portion 38(2) of its memory 40 allocated for third computer 30(3) addressed messages. The size of the allocated buffer portion 38(2) in memory 40 is much larger than is necessary to hold the message 34(3), and in fact is preferably large enough to store several messages. Again, the first computer 30(1) then delays for the requisite amount of time necessary to accomplish above-mentioned two goals with respect to the third message 34(3).
A fourth one of the messages 34(4), addressed for the second computer 30(2), next needs to be sent by the first computer 30( 1 ). Recognizing the continued existence of the congestion condition on the transport medium 32, the first computer 30(1) buffers the message 34(4) in the previously reserved portion 38(1) of its memory 40 allocated for second computer 30(2) addressed messages. Thus, the message 34(4) is stored in memory 40 in the same reserved portion 38(1) with the previously stored second message 34(2) that is also addressed for the second computer 30(2).
Again, the first computer 30(1) then delays for the requisite amount of time necessary to accomplish above-mentioned two goals with respect to the stored second and fourth messages 34(2) and 34(4), respectively.
A fifth one of the messages 34(5), again addressed for the second computer 30(2), next needs to be sent by the first computer 30(1). Recognizing the continued 2 0 existence of the congestion condition on the transport medium 32, the first computer 30( 1 ) buffers the message 34(5) in the previously reserved portion 38( 1 ) of its memory 40 allocated for second computer 30(2) addressed messages. Thus, the message 34(5) is stored in memory 40 in the same reserved portion 38(1) with the previously stored second and fourth messages 34(2) and 34(4) which are also addressed for the second 2 5 computer 30(2). Again, the first computer 30(1) then delays for the requisite amount of time necessary to accomplish above-mentioned two goals with respect to the second, fourth and fifth messages 34(2), 34(4) and 34(5), respectively.
At this point in time, the first computer 30(1) detects that the congestion condition on the transport medium 32 has subsided. Thus, the primary goal of the 3 0 delay period has been satisfied. It is also noted that the secondary goal of the delay period has been satisfied with respect to messages addressed for the second computer 30(2). In this regard, reserved portion 38(1) of the memory 40 for buffering messages 34 addressed for the second computer 30(2) contains the second, fourth and fifth messages 34(2), 34(4) and 34(5). Although the secondary goal of the delay period has 3 5 not been satisfied with respect to messages 34 addressed for the third computer 30(3), this is of little concern as there is no loss in efficiency with respect to re-sending the single buffered message 34(3) addressed for the third computer 30(3), but a significant efficiency advantage is incurred with respect to a single packet resend of the stored second, fourth and fifth messages 34(2), 34(4) and 34(5).
Responsive to the detected non-congested condition of the transport medium 32, the first computer 30(1) retrieves the messages 34(2), 34(4) and 34(5) from the reserved portion 38(1) of the memory 40, encapsulates them into a single packet 36 addressed to the second computer 30(2), and (assuming no new congestion is encountered) successfully sends the packet over the transport medium 32. In this way, the messages 34(2), 34(4) and 34(S) are in essence "piggybacked" into a single packet transmission. Advantageously, this single packet requires the use of much less CPU
1 o and transport medium work effort to send than would have been expended had the messages been sequentially sent in separate packets as taught by the prior art scheme illustrated in FIGURE 1. The first computer 30(1) further retrieves the message 34(3) from the reserved portion 38(2) of the memory 40, encapsulates it into a single packet 36 addressed to the third computer 30(3), and successfully sends the packet over the transport medium 32.
Reference is now made to FIGURE 3 wherein there is shown a block diagram of a network connected computer system illustrating a message transmission scheme in accordance with a second embodiment of the present invention. A plurality of computers 30( 1 )-30(3) are interconnected to each other in a network configuration by 2 0 at least one transport medium 32. First computer 30(1) has a need over a period of time to send a plurality of messages 34( 1 )-34(S) to several ones of the other computers 30(2)-30(3). A first one of the messages 34(1), for example addressed to computer 30(2), is encapsulated in a packet 36 and sent from the first computer 30(1) and is successfully delivered by the transport medium 32 to the addressee second computer 2 5 30(2). A second one of the messages 34(2), again for example addressed to computer 30(2), is then encapsulated in a packet 36 and sent from the first computer 30(1), but fails to be delivered to the addressee computer 30(2) due to congestion currently being experienced on the transport medium 32. Responsive to such a failure, the first computer 30(1) encapsulates the message 34(2) into a packet 36(1) and stores that 3 0 packet in a reserved portion 38(1 ) of its memory 40 allocated for second computer 30(2) addressed messages. The size of the allocated portion 38(1) in memory 40 is much larger than is necessary to hold the packet 36( 1 ) containing only message 34(2), and in fact is preferably large enough to store a packet containing several messages.
The first computer 30(1) then delays for a requisite amount of time necessary to 3 5 accomplish two goals. The primary goal is let the congestion condition on the transport medium 32 subside before attempting a re-send. The secondary goal is to wait during the experienced congestion condition to see if the first computer 30(1) needs to send during the congestion period any other messages 34 also addressed to the second computer 30(2), and if so to then include those messages (as will be discussed in more detail below) in a single packet re-send to the second computer.
A third one of the messages 34(3), addressed for the third computer 30(3), next needs to be sent by the first computer 30( 1 ). Recognizing the continued existence of the congestion condition on the transport medium 32, the first computer 30(1) encapsulates the message 34(3) into a packet 36(2) and stores that packet in a reserved portion 38(2) of its memory 40 allocated for third computer 30(3) addressed messages.
The size of the allocated portion 38(2) in memory 40 is much larger than is necessary to hold the packet 36( 1 ) containing only message 34(3), and in fact is preferably large enough to store apacket containing several messages. Again, the first computer 30(1) then delays for the requisite amount of time necessary to accomplish above-mentioned two goals with respect to the third message 34(3).
A fourth one of the messages 34(4), addressed for the second computer 30(2), next needs to be sent by the first computer 30( 1 ). Recognizing the continued existence of the congestion condition on the transport medium 32, the first computer 30(1) encapsulates the message 34(4) with previous message 34(2) into the packet 36(1) stored in the previously reserved portion 38(1) of its memory 40 allocated for second computer 30(2) addressed messages. Thus, the message 34(4) is stored in memory 2 0 in the same reserved portion 38(1) with the previously stored second message 34(2) that is also addressed for the second computer 30(2). Again, the first computer 30( 1 ) then delays for the requisite amount of time necessary to accomplish above-mentioned two goals with respect to the stored second and fourth messages 34(2) and 34(4), respectively.
2 5 A fifth one of the messages 34(5), again addressed for the second computer 30(2), next needs to be sent by the first computer 30(1). Recognizing the continued existence of the congestion condition on the transport medium 32, the first computer 30(1) encapsulates the message 34(5) with previous messages 34(2) and 34(4) into the packet 36( 1 ) stored in the previously reserved portion 3 8( 1 ) of its memory 40 allocated 3 0 for second computer 30(2) addressed messages. Thus, the message 34(5) is stored in memory 40 in the same reserved portion 38(1) with the previously stored second and fourth messages 34(2) and 34(4) which are also addressed for the second computer 30(2). Again, the first computer 30(1) then delays for the requisite amount of time necessary to accomplish above-mentioned two goals with respect to the second, fourth 3 5 and fifth messages 34(2), 34(4) and 34(S), respectively.
At this point in time, the first computer 30(1) detects that the congestion condition on the transport medium 32 has subsided. Thus, the primary goal of the _g_ delay period has been satisfied. It is also noted that the secondary goal of the delay period has been satisfied with respect to messages addressed for the second computer 30(2). In this regard, reserved portion 38(1) of the memory 40 for buffering messages 34 addressed for the second computer 30(2) contains the second, fourth and fifth messages 34(2), 34(4) and 34(5). Although the secondary goal of the delay period has not been satisfied with respect to messages 34 addressed for the third computer 30(3), this is of little concern as there is no loss in efficiency with respect to re-sending the single buffered message 34(3) addressed for the third computer 30(3), but a significant efficiency advantage is incurred with respect to a single packet resend of the stored 1 o second, fourth and fifth messages 34(2), 34(4) and 34(5).
Responsive to the detected non-congested condition of the transport medium 32, the first computer 30( 1 ) retrieves the packet 3( 1 ) containing messages 34(2), 34(4) and 34(5) from the reserved portion 38(1) of the memory 40, and successfully sends the packet over the transport medium 32 to the second computer. In this way, the messages 34(2), 34(4) and 34(5) are in essence "piggybacked" into a single packet transmission. Advantageously, this single packet requires the use of much less CPU
and transport medium work effort to send than would have been expended had the messages been sequentially sent in separate packets as taught by the prior art scheme illustrated in FIGURE 1. The first computer 30(1) further retrieves the packet 36(2) 2 0 containing message 34(3) from the reserved portion 38(2) of the memory 40, and successfully sends the packet over the transport medium 32 to the third computer.
Reference is now made to FIGURES 4A-4D wherein there are shown flow diagrams illustrating operation of the sending computer in accordance with the message transmission schemes of the present invention. Reference is first made to 2 5 FIGURES 4A-4B. In FIGURE 4A, the computer checks in decision step 50 whether there is any congestion on the transmission medium that would preclude successful delivery of the message. If yes (path 52), the message is encapsulated into a packet in step 54 addressed to the destination computer for that message (along with any other previously processed messages also addressed to the same destination) and the packet 3 0 is stored in step 56. The process then returns. If no (path 58), message is transmitted in step 60. It should be noted here that the action of transmitting in step 60 may include the use of zero or more encapsulations. The process then returns. If congestion has ended (path 62), the process moves to FIGURE 4B. In FIGURE 4B, a determination is made at step 64 as to whether there are any unsent and stored 3 5 messages. If not (path 66), the process returns. If yes, (path 68), a determination is made in step 70 as to whether any new congestion condition has arisen that would prevent transmission of the messages. If yes (path 72), the process returns.
If no (path _g_ 74), the packets previously encapsulated and stored messages are retrieved and the associated packets) is/are transmitted in step 76. It should be noted here that the action of transmitting in step 76 may include the use of zero or more encapsulations.
The process then returns (path 78) and repeats until all buffered messages have been transmitted (or a new congestion condition arises that would preclude transmission) by sending their associated packets.
Reference is next made to FIGURES 4C-4D. In FIGURE 4C, the computer checks in decision step 80 whether there is any congestion on the transmission medium that would preclude successful delivery of the message. If yes (path 82), the message is stored in step 84 along with any other previously stored messages addressed to the same destination computer. The process then returns. If no (path 86), message is transmitted in step 88. It should be noted here that the action of transmitting in step 88 may include the use of zero or more encapsulations.
The process then returns. If congestion has ended (path 90), the process moves to FIGURE
4D. In FIGURE 4D, a determination is made at step 92 as to whether there are any unsent and stored messages. If not (path 94), the process returns. If yes, (path 96), a determination is made in step 98 as to whether any new congestion condition has arisen that would prevent transmission of the messages. If yes (path 100), the process returns. If no (path 102), the messages previously stored and addressed to the same 2 0 destination are retrieved and encapsulated into a packet in step 104, and that packet is transmitted in step 106. It should be noted here that the action of transmitting in step 106 may include the use of zero or more additional encapsulations. The process then returns (path 108) and repeats until all buffered messages have been transmitted (or a new congestion condition arises that would preclude transmission) by sending their 2 5 associated packets.
In accordance with the well known OSI model for communications systems, the FIGURES 4A-4D illustrated process of the present invention is preferably implemented at the link layer level rather than at the transport layer level as is experienced with the previously mentioned prior art TCP service. With such a 3 0 configuration, messages addressed to the same destination computer may be piggybacked together in a single packet irrespective of their particular origination port within the sending computer or destination port within the destination computer. This advantage is illustrated in the message flow process diagram of FIGURE 5 wherein:
a first message 100(1) originated at port one 102(1) of a sending computer 35 104(1) is addressed to port one 102(1) of a certain destination computer 104(2); and a second message 100(2) originated at port two 102(2) of the sending computer 104(1) is addressed to port two 102(2) of the certain destination computer 104(2).

In accordance with the process of FIGURES 4C-4D, and responsive to a congestion condition on a transport medium 106 connecting the sending computer 104(1) to the destination computer 104(2), the sending computer buffers the messages 100(1) and 100(2) in a reserved portion 108(1) of its memory 110 allocated for destination computer 104(2) addressed messages. The size of the allocated buffer portion 108( 1 ) in memory 110 is typically much larger than is necessary to hold the two messages 100(1) and 100(2), and in fact is preferably large enough to store several more messages if necessary. It should also be noted that the messages 100( 1 ) and 100(2) are stored in the reserved portion 108(1) together because they are addressed to the same destination computer 104(2) and in spite of the fact that they originated at different ports 102 of the sending computer 104(1) and are destined for delivery to different ports 102 of the destination computer 104(2). The sending computer 104(1) then delays for the requisite amount of time necessary to accomplish above-mentioned two goals.
Responsive to the detected non-congested condition of the transport medium 106, the sending computer 104(1) retrieves the messages 100(1) and 100(2) from the reserved portion 108( 1 ) of the memory 110, encapsulates them into a single packet 112 addressed to the destination computer 104(2), and successfully sends the packet over the transport medium 106. This operation is performed at the link layer level of the 2 0 OSI model within the sending computer 104(1). At the destination computer 104(2), and also at its link layer level of the OSI model, the received packet 112 is split into its two message components, and the first message 100( 1 ) is delivered to the first port 102(1) and the second message is delivered to the second port 102(2).
It will, of course, be understood that the process of FIGURES 4A-4B for 2 5 encapsulating into packets at first computer storage may alternatively be used in the context of the mufti-port transport illustrated in FIGURE 5.
Although illustrated and described herein in the context of a single transport medium connected the network connected plurality of computers, it will be understood that the present invention may be practiced in networking configurations wherein 3 0 plural transport media are utilized to interconnect a plurality of computers. In such a configuration, the test for congestion is performed with respect to each transport media, and the transmission scheme for buffering similarly addressed messages for subsequent piggybacked delivery within a single packet is implemented only with respect to the medium that is detected as being congested. Conventional processing 3 5 and message handling is implemented with respect to all other messages being conveyed over non-congested media.

Although preferred embodiments of the method and apparatus of the present invention have been illustrated in the accompanying Drawings and described in the foregoing Detailed Description, it will be understood that the invention is not limited to the embodiments disclosed, but is capable of numerous rearrangements, modifications and substitutions without departing from the spirit of the invention as set forth and defined by the following claims.

Claims (16)

CLAIMS:
1. A method for having a sending computer (1) sand messages to a destination computer (2) (3) over a transport medium (12), characterized by the steps of:
detecting a congestion condition on the transport medium(12);
responsive thereto, buffering plural messages addressed to the destination computer in a reserved portion of sending computer memory (20) (40) allocated to store messages addressed to that destination computer, detecting a non-congestion condition on the transport medium (12);
responsive thereto, retrieving the plural buffered messages (36) from the reserved portion of said sending computer memory;
encapsulating the retrieved plural messages into a single packet addressed to that destination computer (2) (3); and sending the single packet over the transport medium to that destination computer.
2. The method as in claim 1 wherein at least two of the plural messages are originated at different ports within the sending computer.
3. The method as in claim 1 wherein at least two of the messages are destined for delivery to different ports within the destination computer.
4. The method as in claim 1 wherein the step of encapsulating is performed within the sending computer at OSI link layer level.
5. A message sending computer (1) connected to a transport medium (32), characterized by:
a port for originating plural messages (34(1) to 34(5)) addressed to a same destination computer (2) (3);
a memory (20, (40) within the sending-computer including a reserved portion allocated to store non-transported plural messages addressed to that destination computer in response to a detected congestion condition on the transport medium; and means, responsive to detection of a non-congestion condition on the transport medium (32), for:
retrieving the plural messages from the reserved portion of sending computer memory;
encapsulating the retrieved plural messages into a single packet (36) addressed to that destination computer; and sending the single packet (36) over the transport medium (32) to that destination computer.
6. The computer as in claim 5 further including a plurality of ports for originating plural computer generated messages addressed to the same destination computer, those plural messages generated at different ports being stored in the reserved portion of the memory allocated to that destination computer.
7. The computer as in claim 6 wherein at least two of the messages are destined for delivery to different ports within the destination computer.
8. The computer as in claim 5 wherein action for encapsulating is performed within the sending computer at OSI link layer level.
9. A method for having a sending-computer (1) send messages to a destination computer over a transport medium (32) characterized by the steps of:
detecting a congestion condition on the transport medium;
responsive thereto, encapsulating plural computer generated messages addressed to said same destination computer (2) (3) in a single packet and storing that single packet in a common reserved portion of sending computer memory allocated to store packets addressed to that destination computer;
detecting a non-congestion condition on the transport medium;
responsive thereto, retrieving the stored single packet (36) from the said common reserved portion of the sending computer memory (40); and sending the retrieved single packet over the transport medium (32) to that destination computer.
10. The method as in claim 9 wherein at least two of the plural messages are originated at different ports within the sending computer.
11. The method as in claim 9 wherein at least two of the messages are destined for delivery to different ports within the destination computer.
12. The method as in claim 9 wherein the step of encapsulating is performed within the sending computer at OSI link layer level.
13. A message-sending computer (104(1)) connected to a transport medium, characterized by:
a port (1, 2) for originating plural computer generated messages (100(1), 100(2)) addressed to a same destination computer (104(2);
a memory (110) within the message-sending computer including a reserved portion allocated to store a single packet (108(1)) encapsulating the plural messages addressed to that destination computer in response to a detected congestion condition of the transport medium; and means responsive to detection of a non-congestion condition of the transport medium, for:
retrieving the stored single packet from the reserved portion of sending computer memory; and sending the single packet (112) over the transport medium to that destination computer.
14. The computer as in claim 13 further including a plurality of ports for originating plural computer generated messages addressed to the same destination computer, those plural messages generated at different ports being encapsulated into a single packet that is stored in the reserved portion of the memory allocated to that destination computer.
15. The computer as in claim 13 wherein at least two of the messages are destined for delivery to different ports within the destination computer.
16. The computer as in claim 13 wherein action for encapsulating is performed within the sending computer at OSI link layer level.
CA002385470A 1999-09-21 2000-08-25 Message piggybacking during transport medium congestion Expired - Fee Related CA2385470C (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US40013999A 1999-09-21 1999-09-21
US09/400,139 1999-09-21
PCT/SE2000/001645 WO2001022665A2 (en) 1999-09-21 2000-08-25 Message piggybacking during transport medium congestion

Publications (2)

Publication Number Publication Date
CA2385470A1 CA2385470A1 (en) 2001-03-29
CA2385470C true CA2385470C (en) 2006-05-02

Family

ID=23582378

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002385470A Expired - Fee Related CA2385470C (en) 1999-09-21 2000-08-25 Message piggybacking during transport medium congestion

Country Status (7)

Country Link
EP (1) EP1214861A2 (en)
CN (1) CN1437836A (en)
AR (1) AR028869A1 (en)
AU (1) AU7564800A (en)
BR (1) BR0014110A (en)
CA (1) CA2385470C (en)
WO (1) WO2001022665A2 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805823A (en) * 1996-01-30 1998-09-08 Wayfarer Communications, Inc. System and method for optimal multiplexed message aggregation between client applications in client-server networks
US6041345A (en) * 1996-03-08 2000-03-21 Microsoft Corporation Active stream format for holding multiple media streams

Also Published As

Publication number Publication date
EP1214861A2 (en) 2002-06-19
WO2001022665A2 (en) 2001-03-29
CA2385470A1 (en) 2001-03-29
WO2001022665A3 (en) 2001-08-16
BR0014110A (en) 2002-05-14
AR028869A1 (en) 2003-05-28
AU7564800A (en) 2001-04-24
CN1437836A (en) 2003-08-20

Similar Documents

Publication Publication Date Title
KR101143172B1 (en) Efficient transfer of messages using reliable messaging protocols for web services
EP0912028B1 (en) Mechanism for dispatching packets via a telecommunications network
US6741555B1 (en) Enhancement of explicit congestion notification (ECN) for wireless network applications
US6757248B1 (en) Performance enhancement of transmission control protocol (TCP) for wireless network applications
US7760646B2 (en) Congestion notification in 3G radio access
US6954797B1 (en) Data Communication method, terminal equipment, interconnecting installation, data communication system and recording medium
US7443845B2 (en) Apparatus and method for a lightweight, reliable, packet-based transport protocol
US6625118B1 (en) Receiver based congestion control
JP4587053B2 (en) Communication apparatus, communication system, packet loss detection method, and packet loss detection program
US6765870B2 (en) Medium access dynamic congestion control mechanism for wireless data
US7110418B2 (en) Method to ensure the quality of preferred communication services, a local network, a station, a local network controller and a program module therefor
JP2002539678A (en) Multiple reception confirmation management system in data network
US6765869B2 (en) Medium access dynamic congestion control mechanism for wireless data
SE513327C2 (en) Systems and method of data communication
US20070291782A1 (en) Acknowledgement filtering
US11799777B2 (en) Method for transferring information across a data center network
US7286483B2 (en) Electronic data transfer based on selective storage of incoming packets
CA2385470C (en) Message piggybacking during transport medium congestion
WO2000011841A1 (en) Method and system for prioritised congestion control in a switching hub
EP0222584A2 (en) A bridge for and a method for routeing signals between local area networks
JP5046197B2 (en) Communication apparatus, communication system, packet loss detection method, and packet loss detection program
JPH10117213A (en) Packet communication equipment
JPH0766838A (en) Congestion control frame relay equipment
JPH0738612A (en) Gateway
JPH0946375A (en) Method for resending packet in packet exchange network

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed