GB2447469A - Handling TCP transmissions by determination of a sending or receiving nodes congestion avoidance capabilities - Google Patents

Handling TCP transmissions by determination of a sending or receiving nodes congestion avoidance capabilities Download PDF

Info

Publication number
GB2447469A
GB2447469A GB0704825A GB0704825A GB2447469A GB 2447469 A GB2447469 A GB 2447469A GB 0704825 A GB0704825 A GB 0704825A GB 0704825 A GB0704825 A GB 0704825A GB 2447469 A GB2447469 A GB 2447469A
Authority
GB
United Kingdom
Prior art keywords
transmission
peer
transmissions
loss assessment
further characterised
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.)
Granted
Application number
GB0704825A
Other versions
GB0704825D0 (en
GB2447469B (en
Inventor
Yuri Granovsky
Uri Kogan
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.)
Motorola Solutions Inc
Original Assignee
Motorola Inc
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 Motorola Inc filed Critical Motorola Inc
Priority to GB0704825A priority Critical patent/GB2447469B/en
Publication of GB0704825D0 publication Critical patent/GB0704825D0/en
Priority to PCT/US2008/055747 priority patent/WO2008112456A1/en
Publication of GB2447469A publication Critical patent/GB2447469A/en
Application granted granted Critical
Publication of GB2447469B publication Critical patent/GB2447469B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • H04L43/0835One way packet loss
    • H04L12/2649
    • H04L12/2697
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • 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/12Avoiding congestion; Recovering from congestion
    • 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/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • 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/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • 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

Landscapes

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

Abstract

A node intermediate a sending and receiving node intercepts packets sent under TCP, and determines whether the sending or receiving node is employing so-called "transmission loss assessment" (TLA) involving, e.g. the TCP Westwood process using Fair Share Estimates (FSE), where a node responds differently to perceived random packet losses (duplicate ACK messages received) or a timeout event indicating network congestion. The congestion window (cwnd) of the sender is reduced in the latter case but not in the former. Hence the intermediate node randomly drops one of the intercepted packets and then examines the window size of succeeding packets from the original sender or the recipient, depending on which is being investigated, to determine if cwnd has been altered and therefore if the node supports TLA. If the node does not use TLA, the intermediate node provides this service for the node.

Description

METHOD AND APPARATUS FOR HANDLING INTERCONNECTION
TRANSMISSIONS
TECHNICAL FIELD
The technical field relates generally to a method and apparatus for handling interconnection transmissions. In particular, the technical field relates to a system, a method and apparatus for handling interconnection transmissions to/from a local peer, and performing transmission loss assessment more efficiently.
BACKGROUND
It is known for a device to be connected to, the World Wide Web (www), or other network, by way of a split connection (SC) host. An example of such a scenario might be a mobile device, such as a mobile telephone handset, connecting to the World Wide Web via a wireless network base station.
FIG. 1 illustrates an example of a known split connection arrangement 100. A first communication device 110, denoted as peer A, is able to connect to a second device 120, denoted as peer B, by way of a network 130, such as the World Wide Web. Peer A 110 connects to the network 130 by way of a split connection (SC) host 140.
In this manner, peer A 110 is a local' peer of the SC host 140. For the illustrated embodiment, peer B 120 connects to the network 130 directly, and is a foreign' peer of the SC host 140. However, it will be appreciated by a skilled artisan that peer B 120 may also be connected to the network 130 by way of an SC host, or other intermediate device.
Devices communicate across networks by way of protocols, the protocols acting as a set of rules governing how information, data, etc. is to be sent and/or received. The Transmission Control Protocol/Internet Protocol (TCP/IP) protocol suite has become the de facto standard for computer communications in today's networked world. The TCP/IP protocol suite is so named for two of its most important protocols: Transmission Control Protocol (TCP) and Internet Protocol (IP) . Another name for it is the Internet Protocol Suite, which is the phrase used in official Internet standards documents.
As will be appreciated by a skilled artisan, a problem encountered when transmitting data is that of network congestion. To overcome this problem, various TCP congestion algorithms are known. TCP congestion algorithms prevent a sender from over-running the capacity of the network (for example, slower WAN links) Several congestion control enhancements have been suggested and added to TCP over the years. This is still an active and ongoing research area, but modern implementations of TCP contain four intertwined algorithms as basic Internet standards: * Slow start * Congestion avoidance * Fast retransmit * Fast recovery Slow start Old implementations of TCP would start a connection with the sender injecting multiple segments, or packets, into the network, up to the window size advertised by the receiver. While this is acceptable when the two peers are on the same local area network (LAN), if there are routers and slower links between the sender and the receiver, problems can arise. Some intermediate routers cannot handle the number of segments transmitted, packets are dropped, resulting in re-transmissions and performance is consequently degraded.
The algorithm to avoid this problem is called slow start' . It operates by observing that the rate at which new packets should be injected into the network is the rate at which the acknowledgments are returned by the receiving end. Slow start adds another window to the sender's TCP: the congestion window, called cwnd' . When a new connection is established with a peer on another network, the congestion window is initialized to one segment (for example, the segment size announced by the other end, or the default, typically 536 or 512) . Each time an acknowledgement (ACK) is received, the congestion window is increased by one segment. The sender can transmit the lower value of the congestion window or the advertised window. The congestion window (cwnd) is flow control imposed by the sender, while the advertised window is flow control imposed by the receiver. The former is based on the sender's assessment of perceived network congestion; the latter is related to the amount of available buffer space at the receiver for this connection.
The sender starts by transmitting one segment and waiting for its ACK. When that ACK is received, the congestion window is incremented from one to two, and two segments can be sent. When each of those two segments is acknowledged, the congestion window is increased to four.
This provides an exponential growth, although it is not exactly exponential, because the receiver may delay its ACKs, typically sending one ACK for every two segments that it receives.
At some point, the capacity of the IP network (for example, slower wide area network (WAN) links) can be reached, and an intermediate router will start discarding packets. This tells the sender that its congestion window has become too large.
Congestion avoidance The assumption of the congestion avoidance algorithm is that packet loss caused by rrors is very small (for example much less than 1 percent). Therefore, the loss of a data packet signals congestion somewhere in the network between the source and destination communication devices.
There are two indications of packet loss: 1. A timeout occurs.
2. Duplicate ACKs are received.
Congestion avoidance and slow start are independent algorithms with different objectives. But when congestion occurs TCP must slow down its transmission rate of packets into the network, and invoke slow start to re-initialise transmissions. In practice, they are implemented together.
Congestion avoidance and slow start require that two variables be maintained for each connection: * A congestion window, cwnd'; and * A slow start threshold size, ssthresh' The known combined algorithm operates as follows: 1. Initialization for a given connection sets cwnd' to one segment and ssthresh' to, for example 65535 bytes.
2. The TCP output routine never sends more than the lower value of cwnd' or the receiver's advertised window.
3. When congestion occurs (timeout or duplicate ACK), one-half of the current window size is saved in ssthresh' . Additionally, if the congestion is indicated by a timeout, cwnd' is set to one segment.
4. When new data is acknowledged by the receiving end, increase cwnd', but the way it increases depends upon whether TCP is performing slow start or congestion avoidance. If cwnd' is less than or equal to ssthresh', TCP is in slow start; otherwise, TCP is performing congestion avoidance.
Slow start continues until TCP is halfway to where it was being transmitted when congestion occurred (since it recorded half of the window size that caused the problem in step 2), and then congestion avoidance takes over. Slow start has cwnd' begin at one segment, and incremented by one segment every time an ACK is received.
As mentioned earlier, this opens the window exponentially: send one segment, then two, then four, and so on.
Congestion avoidance dictates that cwnd' be incremented by segsize*segsize/cwrid each time an ACK is received, where segsize is the segment size and cwnd' is maintained in bytes. This is a linear growth of cwnd', compared to slow Start's exponential growth. The increase in cwnd' should be at most one segment each round-trip time (regardless of how many ACK5 are received in that round trip time), whereas slow start increments cwnd' by the number of ACKs received in a round-trip time.
Fast re-transmit Fast re-transmit avoids having TCP wait for a timeout to resend lost segments.
TCP may generate an immediate acknowledgment (a duplicate ACK) when an out-of--order segment is received.
This duplicate ACK should not be delayed. The purpose of this duplicate ACK is to let the other end know that a segment was received out of order, and to inform the other end what sequence number is expected.
Since TOP does not know whether a duplicate ACK is caused by a lost segment or just a re-ordering of segments, it waits for a small number of duplicate ACKs to be received. It is assumed that if there is just a re-ordering of the segments, there will be only one or two duplicate ACKs before the re-ordered segment is processed, which will then generate a new ACK. If three or more duplicate ACKs are received in a row, this provides a strong indication that a segment has been lost. TCP then performs a re-transmission of what appears to be the missing segment, without waiting for a re-transmission timer to expire.
Fast recovery After fast re-transmit sends what appears to be the missing segment, congestion avoidance, without slow start, is performed. This is the fast recovery algorithm.
It is an improvement that allows high throughput under moderate congestion, especially for large windows.
The reason for not performing slow start in this case is that the receipt of the duplicate ACKs tells TCP more than just a packet has been lost. Since the receiver can only generate the duplicate ACK when another segment is received, that segment has left the network and is in the receiver's buffer. That is, there is still data flowing between the two ends, and TCP does not want to reduce the flow abruptly by going into slow start. The fast re-transmit and fast recovery algorithms are usually implemented together as follows: 1. When the third duplicate ACK in a row is received, set ssthresh to one-half the current congestion window, cwnd', but no less than two segments. Re-transmit the missing segment. Set cwnd' to ssthresh' plus three times the segment size. This inflates the congestion window by the number of segments that have left the network and the other end has cached (i.e. three, since this is the number of duplicate ACKs received) 2. Each time another duplicate ACK arrives, increment cwnd' by the segment size. This inflates the congestion window for the additional segment that has left the network. Transmit a packet, if allowed by the new value of cwnd'.
3. When the next ACK arrives that acknowledges new data, set cwnd' to ssthresh' (the value set in step 1) . This ACK should be the acknowledgment of the retransmission from step 1, one round-trip time after the re-transmission. Additionally, this ACK should acknowledge all the intermediate segments sent between the lost packet and the receipt of the first duplicate ACK. This step is congestion avoidance, since TCP is down to one-half of the rate it was at when the packet was lost.
In the Internet, packets are often transmitted in bursts (due to the bursty nature of TCP etc) . As a result, losses also often happen within and between bursts. This is primarily due to first-in first-out (FIFO) queues in routers.
A fundamental problem is that Fast Re-transmit assumes that only one segment was lost. This can result in loss of ACK clocking and timeouts if more than one segment is lost.
Furthermore, several problems are encountered with multiple packet losses in a window of data (usually in the order of half a window) . For example, Fast Retransmit and Fast Recovery are invoked several times in succession leading to multiplicative decreases of cwnd' and ssthresh' -impacting the throughput of the connection.
Another problem encountered is known as "ACK starvation": this happens due to the ambiguity of duplicate ACKs and due to the dynamics of cwnd' . Upon initially receiving duplicate ACK5, the sender sets ssthresh' to half cwnd', and reduces cwnd' to equal ssthresh' plus three times the segment size. With the continual receipt of duplicate ACKs, the sender increases cwnd' so that it sends new packets until it fills the advertised window size (i.e. that set by the receiver) Upon receipt of a non duplicate ACK, the sender reduces the window size to equal to ssthresh' (i.e. half its previous size prior to the receipt of the duplicate ACK5).
However, due to multiple packet losses, this non duplicate ACK will be followed by three duplicate ACKs, signaling that another segment was lost. Thus, the sender again sets ssthresh' to half cwnd' (potentially a quarter of the original size of cwnd'), and reduces cwnd' to equal ssthresh' plus three times the segment size. With the continual receipt of duplicate ACKs, the sender increases cwnd' so that it sends new packets until it fills the advertised window size (i.e. that set by the receiver) . Upon receipt of a non duplicate ACK, the sender reduces the window size to equal to ssthresh' (i.e. potentially a quarter of its previous size prior to the receipt of the initial duplicate ACKs) If this happens several times in succession, the left edge of the sending window advances only after each successive non-duplicate ACK, and the amount of data in flight (sent, but not yet ACK'd) eventually becomes more than the congestion window (successively halved by each invocation of Fast Re-transmit) . As there are no more ACK5 to receive, the sender stalls and recovers from this dead-lock only through a timeout -which causes a slow start.
To overcome these problems, various TCP optimisation algorithms have been implemented. The purpose of TCP optimisation is to distinguish between random packet loss and network congestion. If a data packet is not received (or more appropriately the acknowledgement of a data packet is not received) due to random packet loss, then it is assumed to be better to resend the lost packet without reducing the window size. In this way, the transmission rate is not unduly reduced. Conversely, when a data packet is lost due to network congestion (i.e. the packet has been dropped by a router etc.), the window size should be reduced in order to free up network bandwidth.
One such known TCP optimisation implementation is TCP Westwood, which aims to enhance congestion control by way of Fair Share Estimates (FSE) . The sender calculates FSEs by sampling inter-arrival times of ACKs, and information provided within/by the ACKs about the number of bytes delivered. The FSE is then used by the sender to appropriately set cwnd' and ssthresh' after packet loss, as indicated by three duplicate ACKs or a timeout.
FSE is used by sender to appropriately set cwnd' and ssthresh' after packet loss (indicated by three duplicate PACKs, or Timeout) When three duplicate ACKs are detected: * set ssthresh=FSE*RTTm1n * if (cwnd > ssthresh) set cwnd=ssthresh where RTTmin is the minimum round trip delay experienced for the connection.
When a timeout occurs: * set ssthresh=FSE*RTTmin and cwnd=1 Referring back to FIG. 1, the Sc host 140 provides the peer A 110 with access to the network 130, for example by acting as a gateway, or as Home Agent of Mobile Internet Protocol (MIP) . For devices such as mobile telephone handsets, the link between the peer A 110, such as a mobile communications device, and the SC host 140, such as a wireless network base station, is provided by a wireless connection, such as a Global System for Mobile communication (GSM), or 2G, connection, a General Packet Radio System (GPRS), or 2.5G, connection, or a Universal Mobile Telecommunications System (UMTS), or 3G, connection.
Traditionally, such mobile communication devices have limited processing power and/or functionality, and as a consequence are sometimes not adapted to perform tasks such as TCP optimisation described above.
Consequently, it is known for the SC host 140 to intercept transmissions from peer A 110 and perform the TCP optimisation on behalf of the peer.
With advances in technology, devices such as mobile telephone handsets are being provided with increased processing power, and increased functionality.
Consequently, it is becoming more and more common for such devices to be adapted to perform such tasks as TCP optimisat ion.
The inventors have recognised a problem with known systems, in that even when a device, for example peer A in FIG. 1, is adapted to perform TCP optimisation, the SC host 140 will intercept transmissions *from peer A 110, and also perform TCP optimisation thereon. Not only is it unnecessary for the SC host 140 to perform TCP optimisation in such as situation, since the peer A 110 is already providing TCP optimisation, it also adds a delay in the transmission of the data. Such a delay is clearly undesirable.
Thus, there exists a need for improved handling of transmissions.
BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying figures, where like reference numerals refer to identical or functionally similar elements throughout the separate views and which together with the detailed description below are incorporated in and form part of the specification, serve to further illustrate various embodiments and to explain various principles and advantages all in accordance with the present invention.
FIG. 1 illustrates an example of a known peer-to--peer connection via split connection host.
FIG. 2 illustrates a -method of handling interconnection transmissions in accordance with an embodiment of the invention.
FIG. 3 illustrates a method of determining the TLA ability of a peer in accordance with an embodiment of the invention.
FIG. 4 illustrates a method of handling interconnection transmissions destined for a local peer in accordance with an embodiment of the invention.
FIG. 5 illustrates an example of an interconnection host server adapted to perform the inventive concept of the invention.
DETAILED DESCRIPTION
Before describing in detail embodiments that are in accordance with the present invention, it should be observed that the embodiments reside primarily in combinations of method steps, functions and apparatus components related to a method and apparatus for handling interconnection transmissions. Accordingly, the apparatus components and method steps have been represented where appropriate by conventional symbols in the drawings, showing only those specific details that are pertinent to understanding the embodiments of the present invention so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description herein. Thus, it will be appreciated that for simplicity and clarity of illustration, common and well-understood elements that are useful or necessary in a commercially feasible embodiment may not be depicted in order to facilitate a less obstructed view of these various embodiments.
It will be appreciated that embodiments of the invention described herein may be comprised of one or more generic or specialized processors (or processing devices') such as microprocessors, digital signal processors, customized processors and field programmable gate arrays (FPGAs) and unique stored program instructions (including both software and firmware) that control the one or more processors to implement, in conjunction with certain non-processor circuits, some, most, or all of the functions of the method and apparatus for handling interconnection transmissions described herein. The non-processor circuits may include, but are not limited to, a radio receiver, a radio transmitter and user input devices. As such, these functions may be interpreted as steps of a method to perform the handling of interconnection transmissions described herein.
Alternatively, some or all functions could be implemented by a state machine that has no stored program instructions, or in one or more application specific integrated circuits (ASICs), in which each. function or some combinations of certain of the functions are implemented as custom logic. Of course, a combination of the two approaches could be used. Both the state machine and ASIC are considered herein as a processing devices' for purposes of the foregoing discussion and claim language.
Moreover, an embodiment of the invention can be implemented as a computer-readable storage element having computer readable code stored thereon for programming a computer (e.g., comprising a processing device) to perform a method as described and claimed herein.
Examples of such computer-readable storage elements include, but are not limited to, a hard disk, a CD-ROM, an optical storage device and a magnetic storage device.
Further, it is expected that one of ordinary skill, notwithstanding possibly significant effort and many design choices motivated by, for example, available time, current technology, and economic considerations, when guided by the concepts and principles disclosed herein will be readily capable of generating such software instructions and programs and ICs with minimal experimentation.
Generally speaking, pursuant to the various embodiments, the invention relates to a method of handling interconnection communication comprising the steps of: receiving a transmission from a peer; ascertaining whether the peer from which the transmission was received is adapted to perform transmission loss assessment; and if the peer is not adapted to perform transmission loss assessment, to implement transmission loss assessment on behalf of the peer.
In this way, when a transmission is received from a sender that is adapted to perform transmission loss assessment, the fact that the sender is adapted as such is recognised. Further, as a consequence, the unnecessary duplication of implementing transmission loss assessment can be avoided, thus avoiding unnecessary delay in the transmission.
Those skilled in the art will realize that the above recognized advantages and other advantages described herein are merely exemplary and are not meant to be a complete rendering of all of the advantages of the various embodiments of the invention.
Referring now to the drawings, and in particular FIG. 2, a method of handling interconnection transmissions, and in particular a method of handling interconnection transmissions from a local peer, is shown and indicated generally at 200. Those skilled in the art, however, will recognize and appreciate that the specifics of this illustrative example are not specifics of the invention itself and that the teachings set forth herein are applicable in a variety of alternative settings. For example, since the teachings described do not depend on a specific relationship with the sender of a transmission, they can be applied to any sender of a transmission, although a local peer is shown in this embodiment. As such, other alternative implementations are contemplated and are within the scope of the various teachings described.
The method 200 of FIG. 2 begins at step 210, with the receipt of a transmission from, for the illustrated embodiment, a local peer.
For clarity, the local peer may be any device or apparatus that communicates via the apparatus performing the method 200 of FIG. 2. For the example of a split connection 100 illustrated in FIG. 1, in the scenario where the SC host 140 is adapted to perform the method 200 of FIG. 2, the local peer from which the transmission is received may be peer A 110.
As previously mentioned, the invention is not limited to a specific relationship with the sender of a transmission. However, for the exemplary embodiments described herein, a relationship such as that between the SC host 140 and the peer A 110 of FIG. 1 has been adopted to convey the inventive concept.
As previously mentioned, devices communicate across networks by way of protocols, these protocols acting as a set of rules governing how information, data, etc. is to be sent and/or received.
The Transmission Control Protocol/Internet Protocol (TCP/IP) protocol suite has become the de facto standard for computer communications in today's networked world.
The exemplary embodiments described herein will be based on the handling of TCP/IP transmissions. However, it will be appreciated by a skilled artisan that the invention is not limited to the handling of TCP/IP transmissions, but may readily be applied to the handling of transmissions based on other protocols that provide for transmission loss assessment (TLA) IP is a standard protocol with STD number 5. The current IP specification can be found in RFCs 791, 950, 919 and 922, with updates iri RFC 2474. IP is the protocol that hides the underlying physical network by creating a virtual network view. It is an unreliable, best-effort, and connectionless packet delivery protocol. Note that best-effort means that the packets sent by IP may be lost, arrive out of order, or even be duplicated. IP assumes higher layer protocols will address these anomalies.
TCP is a standard protocol with STD number 7. TCP is described by RFC 793 -Transmission Control Protocol. The primary purpose of TCP is to provide reliable logical circuit or connection service between pairs of processes.
It does not assume reliability from the lower-level protocols (such as IP), so TCP must guarantee this itself.
Some important features of TCP include: * Stream Data Transfer: From the application's viewpoint, TCP transfers a contiguous stream of bytes through the network. The application does not have to bother with chopping the data into basic blocks or datagrams. TCP does this by grouping the bytes in TCP segments, which are passed to IP for transmission to the destination. Also, TCP itself decides how to segment the data, and it can forward the data at its own convenience.
* Reliability: TCP assigns a sequence number to each byte transmitted and expects a positive acknowledgment (ACK) from the receiving TCP. If the ACK is not received within a timeout interval, the data is re-transmitted. Since the data is transmitted in blocks (TCP segments), only the sequence nurrther of the first data byte in the segment is sent to the destination peer. The receiving TCP uses the sequence numbers to rearrange the segments when they arrive out of order, and to eliminate duplicate segments.
* Flow Control: The receiving TCP, when sending an ACK back to the sender, also indicates to the sender the number of bytes it can receive beyond the last received TCP segment, without causing overrun and overflow in its internal buffers. This is sent in the ACK in the form of the highest sequence number it can receive without problems. This mechanism is also referred to as a window-mechanism.
Referring back to step 210 in FIG. 2, in the case of TCP/IP transmissions, the receipt of a transmission refers to the receipt of a TCP/IP datagram or segment.
As will be appreciated by a skilled artisan, a received datagram would form a part of a sequence of such datagrams.
Having received a.transmission from the local peer, the next step 220 is to determine whether the local peer is known. In an exemplary embodiment, a local peer is known if information relating to that local peer is available within a database or connection map, such information comprising at least transmission loss assessment ability.
If the local peer is not known in step 220, the next step 230 is to determine whether the local peer performs transmission loss assessment (TLA) . An example of determining whether the local peer performs TLA is illustrated in FIG. 3, and is described in more detail below.
With regard to determining the TIJA ability of the peer, in step 230, a single transmission may not be sufficient. Therefore, in an exemplary embodiment the TLA ability of a local peer is determined following the receipt of a plurality of transmissions from that peer.
For example, upon receipt of a single transmission from a local peer, a TLA determination function is called, to which the transmission, or information relating thereto is passed. Following receipt of a plurality of transmissions from the peer, the TLA ability thereof can be determined.
The transmission is then generally forwarded to the intended recipient (e.g. for a TCP/IP transmission the destination address), in step 240.
In an exemplary embodiment, which will be described in further detail with reference to FIG. 3, a transmission received from an unknown peer may be "dropped", i.e. not forwarded on to the intended recipient, as part of the process of determining the TLA ability of the peer. Where this is the case, step 240 is omitted.
Referring back to step 220, if the local peer is known, for example when information relating to that peer is available within a database orconnection map, the method 200 moves to step 250. In step 250, it is verified whether the peer is adapted to use TLA, for example based on information available within the database or connection map.
If the peer is not adapted to perform TLA, the method 200 moves to step 260, where the transmission is passed to a TCP stack of, for example, the SC host on which the method 200 is being implemented in order for TLA to be provided. The method then ends at step 270.
Referring back to step 250, if the peer is adapted to perform TLA, step 260 is omitted, and the transmission is forwarded "as is" to the intended recipient, in step 240. Finally, the method ends at step 270.
As will be appreciated by a skilled artisan, when a transmission is received from a sender that is adapted to perform transmission loss assessment, the fact that the sender is adapted as such is recognised. As a consequence, the unnecessary duplication of implementing transmission loss assessment can be avoided, thus avoiding unnecessary delay in the transmission. However, when a transmission is received from a sender that is not adapted to perform transmission loss assessment, the fact that the sender is adapted as such is recognised and transmission loss assessment is implemented on behalf of the sender.
Referring now to FIG. 3, there is illustrated a method 300 of determining the TLA ability of a peer in accordance with an exemplary embodiment of the invention. For the illustrated embodiment, the method 300 is expressed in a form of calling a TLA determination function. However, it will be appreciated that the method may be implemented in any alternative manner. For example, a discreet processing device may perform the method of TLA determination.
The method 300 in the illustrated embodiment begins at step 310, where the TLA determination function is called. Next, in step 320, it is determined whether the peer from which the transmission was received is a pending peer'.
As previously mentioned, a single transmission may not be sufficient for the purpose of determining the TLA ability of a peer. Thus, for the illustrated embodiment, the TLA ability of a local peer is determined following the receipt of a plurality of transmissions from that peer. A pending peer' is a peer from which one or more transmissions have previously been received, but for which the TLA ability has yet to be determined.
If the peer from which the transmission has been received is not a pending peer, the method 300 moves to step 330, where a profile is created for that peer.
For the illustrated exemplary embodiment, a receipt of a transmission refers to a receipt of a TCP/IP datagram or segment, and the TLA determination therefore refers to the TLA for TCP/IP transmissions.
As previously mentioned, a problem encountered when transmitting data is that of network congestion. To overcome this problem, various TCP congestion algorithms are known. TCP congestion algorithms prevent a sender from overrunning a capacity of the network (for example, slower WAN links) . Several congestion control enhancements have been suggested and added to TCP over the years. This is still an active and ongoing research area, but modern implementations of TCP contain four intertwined algorithms as basic Internet standards: * Slow start * Congestion avoidance * Fast retransmit * Fast recovery A fundamental problem with these known algorithms is that they assume that only one segment was lost. This can result in loss of ACK clocking and timeouts if more than one segment is lost.
Furthermore, several problems are encountered with multiple packet losses in a window of data (usually in the order of half a window) . For example, Fast Re-transmit and Fast Recovery are invoked several times in succession leading to multiplicative decreases of cwnd' and ssthresh' -impacting the throughput of the connection.
Another problem encountered is known as ACK starvation' : this happens due to the ambiguity of duplicate ACKs and due to the dynamics of cwnd' . Upon initially receiving duplicate ACKs, the sender sets ssthresh' to half cwnd', and reduces cwnd' to equal ssthresh plus three times the segment size. With the continual receipt of duplicate ACKs, the sender increases cwnd' so that it sends new packets until it fills the advertised window size (i.e. that set by the receiver) Upon receipt of a non duplicate ACK, the sender reduces the window size to equal ssthresh' (i.e. half its previous size prior to the receipt of the duplicate ACKs).
However, due to multiple packet losses, this non duplicate ACK will be followed by three duplicate ACKs, signaling that another segment was lost.
Thus, the sender again sets ssthresh' to half cwnd' (potentially a quarter of the original size of cwnd'), and reduces cwnd' to equal ssthresh' plus three times the segment size. With the continual receipt of duplicate ACKs, the sender increases cwrid' so that it sends new packets until it fills the advertised window size (for example, that set by the receiver) . Upon receipt of a non duplicate ACK, the sender reduces the window size to equal ssthresh' (for example, potentially a quarter of its previous size prior to the receipt of the initial duplicate ACKs) If this happens several times in succession, the left edge of the sending window advances only after each successive non-duplicate ACK, and the amount of data in flight (sent but not yet ACK'd) eventually becomes more than the congestion window (successively halved by each invocation of Fast Re-transmit) . As there are no more TACKs to receive, the sender stalls and recovers from this dead-lock only through a timeout -which causes a slow start.
To overcome these problems, transmission loss assessment can be used, such as TCP optimisation algorithms. The purpose of TCP optimisation is to distinguish between random packet loss and network congestion. If a data packet is not received (or more appropriately an acknowledgement of a data packet is not received) due to random packet loss, then it is preferable to resend the lost packet without reducing the window size. In this way, the transmission rate is not unduly reduced. Conversely, when a data packet is lost due to network congestion (for example, the packet has been dropped by a router etc.), the window size should be reduced in order to free up network bandwidth.
One such known TCP optimisation implementation is TCP Westwood, which aims to enhance congestion control by way of Fair Share Estimates (FSE) . The sender calculates FSEs by sampling inter-arrival times of ACKs, and information provided within/by the ACKs about the number of bytes delivered. The FSE is then used by the sender to appropriately set cwnd' and ssthresh' after packet loss, as indicated by three duplicate ACKs or a timeout.
When three duplicate ACKs are detected one approach is to: * set ssthresh=FSE*RTTmin * if (cwnd > ssthresh) set cwnd=ssthresh where RTTmIn is a minimum round trip delay experienced for the connection.
When a timeout occurs one approach is to: * set ssthresh=FSE*RTTmin and cwnd=l Thus, for random packet loss (for example, when three duplicate ACKs are detected) the window size (cwnd) is not reduced, where as for network congestion (for example, when a timeout occurs), the window size is reduced.
Thus, for the illustrated exemplary embodiment, the TLA ability of a peer is determined by effectively simulating random packet loss, and observe a window size of received transmissions. Following a simulated random packet loss, if the window size is reduced, this implies that the peer is not adapted to use TLA. Conversely, if a window size is not reduced, this implies the peer is adapted to use TLA.
Random packet loss is simulated by dropping apparently random packets from a data stream. The effect of dropping a data packet is that the dropped data packet will not reach the intended recipient. Consequently, the intended recipient will not generate an ACK for that data packet. Instead, the intended recipient will generate a duplicate ACK upon receipt of the next data packet in the sequence. For each subsequent data packet received by the intended recipient, further duplicate ACKs will be generated.
In this manner, the sender of the data packets will recognise the fact that a data packet has been lost. As mentioned above, the response to such a loss will provide an indication as to the TLA ability of the sender.
Referring back to FIG. 3, in the next step 335, the window size of the received transmission is determined.
As will be appreciated by a skilled artisan, the window size of a TCP/IP transmission is determined by the congestion window (cwnd) of the sender of the transmission. At this step the window size may be defined as part of TCP negotiation protocol during TCP connection establishment. The determined window size is then saved, in step 340.
Next, in step 345, it is determined whether the received transmission, i.e. the received data packet, should be dropped. This decision may be made based on an algorithm or the like, which keeps track of transmissions received from a peer, for example based on a profile for that peer. In this way, a number of packets dropped will not be too great as to significantly affect a transmission rate.
If it is decided to drop the received transmission, the method 300 moves to step 350, whereby the data packet is dropped, in step 350. This may be achieved by deleting the transmission prior to it being forwarded to the intended recipient, and bypassing step 240 of the method 200 of FIG. 2. The method 300 then moves to step 335, where the TLA determination function is closed.
Alternatively, if it is decided not to drop the received transmission, the method 300 moves straight to step 355, and the TLA determination function is closed.
In this manner, the transmission will be forwarded to the intended recipient.
Referring back to step 320, if the peer from which the transmission has been received is a pending peer', the method 300 moves to step 360, where a profile for that peer is opened.
Next, in step 365, the window size of the sent transmission is determined. At this step the window size for sending may not be determined as part of TCP negotiations, since the TCP segment contains window size of receiving but not sending. The window size for receiving is not expected to be reduced in any case. It is envisaged that the determination of the window size for sending may be based on the counting number of the data bytes sent before receiving ACK with the proper sequence number. Having determined the window size, the next step 370 is to compare the window size to the window size as determined when the peer profile was created, namely that saved in step 340, to see whether the window size has been reduced (for example, due to the simulated random packet loss) If the window size has been reduced, in step 370 this would indicate that the peer is not adapted to use TLA. Therefore, the method 300 moves to Step' 380, where the TLA determination is saved. In this manner, when subsequent transmissions are received from that particular peer, for example in step 220 of the method of FIG. 2, the peer will be known, and in step 250 of FIG. 2 the fact that it does not use TLA will be recognised.
Alternatively, if the window size has not been reduced, in step 370, the method 300 moves to step 375, where a decision is made as to whether to close the peer profile or not. This decision is based on whether or not a TLA determination can be made.
This decision may be based on whether a sufficient number of transmissions have been received to determine the TLA ability of the peer. That is to say, following one or more packets being dropped to simulate random packet loss, if a predetermined number of subsequent transmissions have been received without the window size being reduced, such as ten, it can be assumed that the peer does use TLA.
Alternatively, if the received transmission contains the same data as that of a dropped transmission, for example, it is a retransmission of the dropped data packet, and the window size has not been reduced, this would indicate that the peer uses TLA.
If a TLA determination can be made, and therefore the profile is to be closed, the method 300 moves to step 380, where the determination is saved, and the profile is closed, in step 385.
Alternatively, if the profile is not to be closed, the method 300 moves to step 345. As explained above, in step 345 it is determined whether the received transmission, for example, the received data packet, should be dropped.
Referring now to FIG. 4, there is illustrated a method 400 of handling interconnection transmissions destined for a local peer, that is to say who's intended recipient is a local peer, in accordance with an exemplary embodiment of the invention.
The method 400 begins at step 410, with the receipt of a transmission from, for the illustrated embodiment, a foreign peer, with the intended recipient being a local peer.
In the case of TCP/IP transmissions, the receipt of a transmission refers to the receipt of a TCP/IP datagram or segment. As will be appreciated by a skilled artisan, a received datagram would form a part of a sequence of such datagrams.
Having received a transmission from the foreign peer, the next step 420 is to determine whether the intended recipient, for example, the local peer is known.
In an exemplary embodiment, a peer is known if information relating to that peer is available within a database or connection map, such information comprising at least transmission loss assessment ability.
If the local peer is not known, in step 420, the method 400 moves to step 430, where the transmission is forwarded to the intended recipient, for example, the local peer. The method then ends at step 460.
In an alternative embodiment, where the local peer is not known, in step 420 the transmission may be provided to, for example, a TLA determination function in order to aid in the determination of the TLA ability of the local peer.
Referring back to step 420, if the loc1 peer is known, for example when information relating to that peer is available within a database or connection map, the method 400 moves to step 440. In step 440, it is verified whether the local peer is adapted to use TLA, for example based on information available within the database or connection map. If the peer is not adapted to use TLA, the method 400 moves to step 450, where the transmission is passed to the TCP stack of, for example, the SC host on which the method 400 is being implemented in order for TLA to be provided. The method then ends at step 460.
Referring back to step 440, if the peer is adapted to use TLA, step 450 is omitted, and the transmission is forwarded as is' to the intended recipient, for example, the local peer, in step 450. Finally, the method ends at step 460.
As will be appreciated by a skilled artisan, when a transmission is received where the intended recipient is adapted to perform transmission loss assessment, the fact that the sender is adapted as such is recognised. As a consequence, the unnecessary duplication of implementing transmission loss assessment can be avoided, thus avoiding unnecessary delay in the transmission.
As previously mentioned, when a transmission is received from or to a local peer that is not adapted to perform transmission loss assessment, the transmission is passed to the TCP stack of, for example, the SC host in order for transmission loss assessment to be implemented.
It is known for sc hosts or the like to intercept transmissions to/from local peers, and to implement transmission loss assessment on behalf of the peer.
Therefore a detailed explanation of this process is not required. However, for completeness, a brief explanation is provided below.
An example of transmission loss assessment implementation is TCP Westwood, which aims to enhance congestion control by way of Fair Share Estimates (FSE) . The sender calculates FSEs by sampling inter-arrival times of ACKs, and information provided within/by the ACKs about the number of bytes delivered. The FSE is then used by the sender to appropriately set cwnd and ssthresh after packet loss, as indicated by three duplicate ACKs or a timeout.
FSE is used by sender to appropriately set cwnd and ssthresh after packet loss (indicated by three DUPACKs, or Timeout) When three duplicate ACKs are detected: * set ssthresh=FSE*RTTmin * if (cwnd > ssthresh) set cwnd=ssthresh where RTTmin is the minimum round trip delay experienced for the connection.
When a timeout occurs one approach is to: * set ssthresh=FSE*RTTmin and cwnd=1 Thus, when the SC TCP stack receives transmissions from the local peer, it re-transmits them from itself in accordance with its own cwnd' and ssthresh' values.
Similarly, when the SC TCP stack receives transmissions intended for the local peer, it uses these transmission to calculate FSEs, and then to appropriately set cwnd'and ssthresh' as required and in accordance with transmission loss assessment. The SC TCP stack then forwards the transmissions on to the local peer and/or re-transmits transmissions from the local peer as required.
As will be appreciated by a skilled artisan, transmissions sent by the SC TCP stack will comprise a source address of the SC host. Consequently, if these transmissions were sent as generated by the SC TCP stack, the interception of transmissions by the SC host would not be transparent to the peers. Therefore, the sc host preferably intercepts the transmissions from the sc TCP stack, prior to them being sent, and replaces the sc host address with that of the local peer address. In this way, the interception of the transmissions between the peers will be transparent.
Referring now to FIG. 5 there is illustrated an example of an interconnection host server adapted to perform the inventive concept of the invention. In order to show a practical example of these various teachings, however, the interconnection host server is illustrated in a form of a split connection (SC) host server.
However, it is envisaged that the invention is not limited to an implementation by an SC host server, and may be implemented by any suitable interconnection host server, which is readily appreciated by one skilled in the art.
Turning now to FIG. 5, an SC host server 500 is shown and comprises a transmission intercept (TI) function 510, a connections map 530, a TLA determination function, and a TCP stack 540.
The TI function 510 is adapted to intercept transmissions from one or more local peers, to ascertain whether the local peer from which a transmission is received is adapted to perform transmission loss assessment, and to appropriately handle the received transmission depending on the determination.
For clarity, a local peer may be any device or apparatus that communicates via the SC host server 500.
In the case of TCP/IP transmissions, a receipt of a transmission refers to the receipt of a TCP/IP datagram or segment. As will be appreciated by a skilled artisan, a received datagram would form a part of a sequence of such datagrams.
The TI function 510 is further adapted to determine, upon receipt of a transmission from a local peer, whether the local peer from which the transmission is received is known' . For the illustrated embodiment, a peer is known if information relating to that peer is available within the connection map 520, such information comprising at least transmission loss assessment ability.
Thus, upon receipt of a transmission from a local peer, the TI function 510 identifies the peer from which the transmission was received, for example by way of the "source" address provided within the transmission. The TI function 510 then compares this source address with those present in the connections map 520. If the source address matches one within the connections map 520, the peer is known' . Otherwise, the peer is not known.
If the local peer is not known, the TI function 510 determines whether the local peer performs transmission loss assessment (TLA) . For the illustrated embodiment, this is achieved by way of the TI function 510 calling the TLA determination function 530. In an exemplary embodiment, the TLA determination function 530 performs the method 300 illustrated in FIG. 3, and described in detail above.
As previously mentioned, a single transmission may not be sufficient. Therefore, in an exemplary embodiment, the TLA ability of a local peer is determined following the receipt of a plurality of transmissions from that peer.
For example, upon receipt of a single transmission from a local peer, the TLA determination function 530 is called, to which the transmission, or information relating thereto is passed. Following receipt of a plurality of transmissions from the peer, the TLA ability thereof can be determined.
The transmission is then generally forwarded to the intended recipient (for example, for a TCP/IP transmission the destination address) In an exemplary embodiment, a transmission received from an unknown peer may be dropped', for example, not forwarded, as part of the process of determining the TLA ability of the peer. Where this is the case the transmission is not forwarded to the intended recipient.
The TI function 510 is further adapted to intercept transmissions for which an intended recipient is a local IS peer, to determine whether the local peer from which a transmission is received is adapted to perform transmission loss assessment, and to appropriately handle the received transmission depending on the determination.
Upon receipt of such a transmission for which an intended recipient is a local peer, the TI function 510 is further adapted to determine whether the local peer is known, in the same way as for transmissions received from a local peer.
If the local peer is not known, the transmission may be forwarded to the intended recipient, i.e. the local peer.
In an alternative embodiment, where the local peer is not known, the transmission may be provided to the TLA determination function 530 in order to aid in the determination of the TLA ability of the local peer.
If the local peer is known, TI function 510 verifies whether the local peer is adapted to use TLA, for example based on information available within the connection map 520. If the local peer is not adapted to use TLA, the transmission is passed to the TCP stack 540 in order for TLA to be provided. If the peer is adapted to use TLA, the transmission is forwarded as is' to the intended recipient, i.e. the local peer.
In the foregoing specification, specific embodiments of the present invention have been described. However, one of ordinary skill in the art appreciates that various modifications and changes can be made without departing from the scope of the present invention as set forth in the claims below. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of present invention. The benefits, advantages, solutions to problems, and any element(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as a critical, required, or essential features or elements of any or all the claims.
The invention is defined solely by the appended claims including any amendments made during the pendency of this application and all equivalents of those claims as issued.
Moreover in this document, relational terms such as first and second, top and bottom, and the like may be used solely to distinguish one entity or action from anpther entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. The terms "comprises," "comprising," "has", "having, " "includes", "including," "contains", "containing" or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises, has, includes, contains a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. An element proceeded by "comprises...a", "has...a", "includes...a", "contains...a" does not, without more constraints, preclude the existence of additional identical elements in the process, method, article, or apparatus that comprises, has, includes, contains the element. The terms "a" and "an" are defined as one or more, unless explicitly stated otherwise herein. The terms "substantially", "essentially", "approximately", "about" or any other version thereof, are defined as being close to as understood by one of ordinary skill in the art.
The term "coupled" as used herein is defined as connected, although not necessarily directly and not necessarily mechanically. A device or structure that is "configured" in a certain way is configured in at least that way, but may also be configured in ways that are not listed.

Claims (35)

  1. What is claimed is: 1. A method of handling interconnection transmissions comprising the steps of: receiving a transmission from a peer; ascertaining whether the peer from which the transmission was received is adapted to perform transmission loss assessment; and if the peer is not adapted to perform transmission loss assessment, to implement transmission loss assessment on behalf of the peer.
  2. 2. The method of handling interconnection transmissions of Claim 1 further characterised in that the step of ascertaining whether the peer from which the transmission was received is adapted to perform transmission loss assessment comprises ascertaining whether the peer is known, and if known retrieving information from a database of connections map.
  3. 3. The method of handling interconnection transmissions of Claim 2 further characterised in that if the peer is not known, determining the transmission loss assessment ability of the peer by simulating random packet loss.
  4. 4. The method of handling interconnection transmissions of Claim 3 further characterised in that transmission loss assessment is determined by also observing the transmission window size.
  5. 5. The method of handling interconnection transmissions of Claim 4 further characterised in that the transmission loss assessment ability is determined based on whether the transmission window size is reduced following the simulated random packet loss; reduction in the transmission window size indicating that the peer is not adapted to perform transmission loss assessment.
  6. 6. The method of handling interconnection transmissions of any preceding Claim further characterised in that the transmission is a TCP/IP transmission.
  7. 7. The method of handling interconnection transmissions of Claim 6 further characterised in that providing transmission loss assessment comprises passing the transmission to a TCP stack.
  8. 8. The method of handling interconnection transmissions of any preceding Claim further characterised in that the if the peer is adapted to perform transmission loss assessment, the transmission is forwarded to its intended recipient.
  9. 9. The method of handling interconnection transmissions of any preceding Claim further characteriseci in that the peer is a local peer.
  10. 10. A method of handling interconnection transmissions comprising the steps of: receiving a transmission destined for a peer; ascertaining whether the peer for which the transmission is destined is adapted to perform transmission loss assessment; and if the peer is not adapted to perform transmission loss assessment, to implement transmission loss 3-7 assessment on behalf of the peer.
  11. 11. The method of handling interconnection transmissions of Claim 10 further characterised in that the step of ascertaining whether the peer for which the transmission is destined is adapted to perform transmission loss assessment comprises ascertaining whether the peer is known, and if known retrieving information from a database of connections map.
  12. 12. The method of handling interconnection transmissions of Claim 11 further characterised in that if the peer is not known, determining the transmission loss assessment ability of the peer by observing the transmission window size.
  13. 13. The method of handling interconnection transmissions of Claim 12 further characterised in that the transmission loss assessment ability is determined based on whether the transmission window size is reduced following simulated random packet loss; reduction in the transmission window size indicating that the peer is not adapted to perform transmission loss assessment.
  14. 14. The method of handling interconnection transmissions of any of preceding Claims 10 to 13 further characterised in that the transmission is a TCP/IP transmission.
  15. 15. The method of handling interconnection transmissions of Claim 14 further characterised in that providing transmission loss assessment comprises passing the transmission to a TCP stack.
  16. 16. The method of handling interconnection transmissions of any of preceding claims 10 to 15 further characterised in that the if the peer is adapted to perform transmission loss assessment, the transmission is forwarded to its intended recipient.
  17. 17. The method of handling interconnection transmissions of any of preceding Claims 10 to 16 further characterised in that the peer is a local peer.
  18. 18. A transmission intercept function adapted to: intercept transmissions to and/or from one or more peers; ascertain whether a peer from which a transmission is received, or for which a transmission is destined, is adapted to perform transmission loss assessment; and if the peer is not adapted to perform transmission loss assessment, to implement transmission loss assessment on behalf of the peer.
  19. 19. The transmission intercept function of Claim 18 further characterised in that the transmission intercept function ascertains whether the peer is adapted to perform transmission loss assessment by way of ascertaining whether the peer is known, and if known retrieving information from a database of connections map.
  20. 20. The transmission intercept function of Claim 19 further characterised in that if the peer is not known, determining the transmission loss assessment ability of the peer by simulating random packet loss.
  21. 21. The transmission intercept function of Claim further çharacterised in that transmission loss assessment is determined by also observing the transmission window size.
  22. 22. The transmission intercept function of Claim 21 further characterised in that the transmission loss assessment ability is determined based on whether the transmission window size is reduced following the simulated random packet loss; reduction in the transmission window size indicating that the peer is not adapted to perform transmission loss assessment.
  23. 23. The transmission intercept function of any one of Claims 18 to 22 further characterised in that the transmission is a TCP/IP transmission.
  24. 24. The transmission intercept function of Claim 23 further characterised in that the step of providing transmission loss assessment comprises passing the transmission to a TCP stack.
  25. 25. The transmission intercept function of any of Claims 18 to 24 further characterised in that the if the peer is adapted to perform transmission loss assessment, the transmission is forwarded to its intended recipient.
  26. 26. The transmission intercept function of any of preceding Claims 18 to 25 further characterised in that the peer is a local peer.
  27. 27. A host server adapted to perform a method of handling interconnection transmissions according to any of Claims 1 to 17.
  28. 28. The host server of Claim 27 further characterised in that the host server comprises a transmission intercept function according to any of Claims 18 to 26.
  29. 29. The host server of Claim 28 further characterised in that the host server further comprises one or more of the following: i) a connections map; ii) a transmission loss assessment function; iii) a TCP/IP stack
  30. 30. The host server of any of Claims 27 to 29 further characterised in that the host server is a split connection server.
  31. 31. A computer-readable storage element having computer readable code stored thereon for programming a computer to perform a method for handling interconnection transmissions according to any of Claims 1 to 17.
  32. 32. The computer-readable storage medium of Claim 31, wherein the computer readable storage medium comprises at least one of a hard disk, a CD-ROM, an optical storage device and a magnetic storage device.
  33. 33. The method of handling interconnection transmissions as hereinbefore described, with reference to and/or as shown in the accompanying drawings.
  34. 34. A host server as hereinbefore described, with reference to and/or as shown in the accompanying drawings.
  35. 35. A transmission intercept function as hereinbefore described, with reference to and/or as shown in the accompanying drawings.
GB0704825A 2007-03-14 2007-03-14 Method and apparatus for handling interconnection transmissions Active GB2447469B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
GB0704825A GB2447469B (en) 2007-03-14 2007-03-14 Method and apparatus for handling interconnection transmissions
PCT/US2008/055747 WO2008112456A1 (en) 2007-03-14 2008-03-04 Method and apparatus for handling interconnection transmissions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0704825A GB2447469B (en) 2007-03-14 2007-03-14 Method and apparatus for handling interconnection transmissions

Publications (3)

Publication Number Publication Date
GB0704825D0 GB0704825D0 (en) 2007-04-18
GB2447469A true GB2447469A (en) 2008-09-17
GB2447469B GB2447469B (en) 2009-06-24

Family

ID=37988895

Family Applications (1)

Application Number Title Priority Date Filing Date
GB0704825A Active GB2447469B (en) 2007-03-14 2007-03-14 Method and apparatus for handling interconnection transmissions

Country Status (2)

Country Link
GB (1) GB2447469B (en)
WO (1) WO2008112456A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8194543B2 (en) 2008-12-18 2012-06-05 Intel Mobile Communications GmbH Methods of data traffic shaping, apparatus and wireless device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003043258A1 (en) * 2001-11-09 2003-05-22 Cyneta Networks, Inc. Weighted wireless early detection
EP1383281A1 (en) * 2002-07-19 2004-01-21 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Method for calculating a transmission window size
US7085227B1 (en) * 2001-05-11 2006-08-01 Cisco Technology, Inc. Method for testing congestion avoidance on high speed networks
WO2007016311A2 (en) * 2005-07-28 2007-02-08 Riverbed Technology, Inc. Congestion management over lossy network connections

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3579334B2 (en) * 2000-08-17 2004-10-20 日本電信電話株式会社 Subjective quality estimation method, subjective quality estimation device, fluctuation absorption allowable time estimation method, and fluctuation absorption allowable time estimation device
JP3806133B2 (en) * 2000-10-31 2006-08-09 株式会社東芝 Data transmission apparatus, data transmission method and program
KR100641159B1 (en) * 2004-07-23 2006-11-02 엘지전자 주식회사 Adaptive method for multimedia transmission rate estimation based on rtcppacket

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7085227B1 (en) * 2001-05-11 2006-08-01 Cisco Technology, Inc. Method for testing congestion avoidance on high speed networks
WO2003043258A1 (en) * 2001-11-09 2003-05-22 Cyneta Networks, Inc. Weighted wireless early detection
EP1383281A1 (en) * 2002-07-19 2004-01-21 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Method for calculating a transmission window size
WO2007016311A2 (en) * 2005-07-28 2007-02-08 Riverbed Technology, Inc. Congestion management over lossy network connections

Also Published As

Publication number Publication date
GB0704825D0 (en) 2007-04-18
WO2008112456A1 (en) 2008-09-18
GB2447469B (en) 2009-06-24

Similar Documents

Publication Publication Date Title
US6975647B2 (en) Enhancements for TCP performance enhancing proxies
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
EP2086187B1 (en) Method for transmitting a data stream with anticipation of acknowledgements, corresponding input device, computer program product and storage means
US8072898B2 (en) Method for managing a transmission of data streams on a transport channel of a tunnel, corresponding tunnel end-point and computer-readable storage medium
US7706274B2 (en) High performance TCP for systems with infrequent ACK
US20070086335A1 (en) Congestion management over lossy network connections
EP1344359B1 (en) Method of enhancing the efficiency of data flow in communication systems
CN101436978A (en) Method for authentic data transmission using UDP protocol
JP2007534194A (en) Improved TCP performance when reordering packets
US7480301B2 (en) Method, system and article for improved TCP performance during retransmission in response to selective acknowledgement
AU4034299A (en) Overload control method for a packet-switched network
CN113424578B (en) Acceleration method and device for transmission control protocol
GB2447469A (en) Handling TCP transmissions by determination of a sending or receiving nodes congestion avoidance capabilities
EP1505759A2 (en) Method and device for transmitting/receiving data using acknowledged transport layer protocols
Hurtig et al. SCTP: designed for timely message delivery?
Altahir et al. Performance evaluation of TCP congestion control mechanisms using NS-2
KR100913897B1 (en) Method for controlling congestion of TCP for reducing the number of retransmission timeout
Kocan et al. TCP for wireless network
Chitre et al. TCP in the IPSEC environment
CN115766747A (en) Reliable and efficient transmission method suitable for wireless channel
Gunes et al. UTCP: Unordered transmission control protocol (TCP) for high throughput bulk data transfer
Huston Transport Protocols
Li Forward RTO-Recovery (F-RTO) An Algorithm for Detecting Spurious Timeouts with SCTP in Wireless
Gulwani TRANSPORT PROTOCOLS

Legal Events

Date Code Title Description
732E Amendments to the register in respect of changes of name or changes affecting rights (sect. 32/1977)

Free format text: REGISTERED BETWEEN 20110127 AND 20110202

732E Amendments to the register in respect of changes of name or changes affecting rights (sect. 32/1977)

Free format text: REGISTERED BETWEEN 20170831 AND 20170906