WO2001084805A2 - Optimizing layer i/layer j connections in a network having intermediary agents - Google Patents

Optimizing layer i/layer j connections in a network having intermediary agents Download PDF

Info

Publication number
WO2001084805A2
WO2001084805A2 PCT/US2001/005332 US0105332W WO0184805A2 WO 2001084805 A2 WO2001084805 A2 WO 2001084805A2 US 0105332 W US0105332 W US 0105332W WO 0184805 A2 WO0184805 A2 WO 0184805A2
Authority
WO
WIPO (PCT)
Prior art keywords
layer
intermediary agent
client
intermediary
connection
Prior art date
Application number
PCT/US2001/005332
Other languages
French (fr)
Other versions
WO2001084805A3 (en
Inventor
Guillermo Maturana
Original Assignee
Andes Networks, 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 Andes Networks, Inc. filed Critical Andes Networks, Inc.
Priority to AU2001241576A priority Critical patent/AU2001241576A1/en
Publication of WO2001084805A2 publication Critical patent/WO2001084805A2/en
Publication of WO2001084805A3 publication Critical patent/WO2001084805A3/en

Links

Classifications

    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/166IP fragmentation; TCP segmentation
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Definitions

  • the present invention pertains to method and apparatus for optimizing
  • Layer I / Layer J connections in a network having intermediary agents in a network having intermediary agents.
  • the present invention pertains to TCP/IP connections in a network having intermediary agents.
  • TCP/IP Transmission Control Protocol/Internet Protocol
  • OSI Open Systems International
  • layer 1 is a physical layer that transmits bits of information across a link (it deals with such problems as size and shape of connectors, assignment of functions to pins, conversion of bits to electrical signals, bit-level-synchronization, and so forth)
  • layer 2 is a data link layer that is responsible for transmitting chunks of information across a link (it deals with such problems as checksumming to detect data corruption, coordinating the use of shared media, as in a local area network (“LAN”), and addressing — "Ethernet” is one well known example of a layer 2 protocol)
  • layer 3 is a network layer that enables any pair of systems in the network to communicate with each other (it deals with such problems as route calculation, packet fragmentation and re-assembly when different links in the network have different maximum packet sizes, and congestion control — Internet Protocol (“IP”) is perhaps the most well known example of a layer 3 protocol);
  • IP Internet Protocol
  • layer 4 is a transport layer that establishes a reliable
  • FIG. 1 shows a diagram of a standard configuration of a client-server connection (between client 102 and server 104) using Internet 103 as a connection network.
  • client 102 initiates a connection by sending a TCP "SYN" segment to server 104, and server 104 replies to client 102 with a TCP "SYN-ACK” segment.
  • server 104 replies to client 102 with a TCP "SYN-ACK” segment.
  • client 102 replies to server 104 with a TCP "ACK” segment.
  • data for an application can be sent via TCP segments from client 102 to server 104 and vice versa.
  • a unit of data at layer 4 is called a segment.
  • the layer 4 unit of data must be broken up into many smaller units of data, each of which must be sent separately across the physical wire.
  • the maximum size of a single data frame is approximately 1500 bytes.
  • many typical transactions at the application level (for example, viewing a web page in HTML, graphics, and so forth) comprise many thousands of bytes of data.
  • each end has an option of announcing a quantity known as a Maximum Segment Size ("MSS").
  • MSS is the maximum segment size one end of a connection expects to receive from the other end of the connection over a layer 4 network.
  • an MSS option can only appear in a SYN segment.
  • client 102 may send an MSS to server 104 (thereby announcing the MSS it expects to receive from server 104), and server 104 may send an MSS to client 102 (thereby announcing the MSS it expects to receive from client 102).
  • a predetermined default value is assumed.
  • a TCP layer process sends a SYN segment, either because a local application wants to initiate a connection, or whenever a connection request is received from another host, the TCP layer process can set an MSS value up to the outgoing interface's Maximum Transport
  • MTU Mobile Transmission Control Unit
  • the IP layer process will react by breaking the segments up in a process known as fragmentation.
  • fragmentation a process known as fragmentation.
  • the TCP layer process will break up each TCP segment into more packets than would otherwise have been required. This is a disadvantage due to well-known characteristics of networks wherein fixed overhead per data packet increases when the data packet size is smaller than the MTU of layer 2.
  • fragmentation requires layer 3 to keep track of a sequence of datagrams, and to reform them on receipt. This inefficiency is to be compared with a case where the MSS is correctly set, and the TCP layer process breaks up session layer data into optimally- sized segments. In this case, each of the optimally-sized segments can flow unbroken through layer 3 (IP).
  • IP layer 3
  • Another reason fragmentation is inefficient is that if one of the fragments is lost, the entire TCP segment has to be resent, thereby causing multiple retransmissions.
  • fragmentation also causes inefficiencies in practical networking hardware implementations because networking devices such as routers and bridges are designed to handle the normal case fast, and to handle exceptional cases such as fragmentation much more slowly.
  • FIG. 2 shows a diagram of an alternate, but known, configuration of a client-server connection (a connection between client 102 and server 104) using Internet 103 as a connection network in which intermediary agent 201 receives all traffic destined for server 104, and performs some action on the data stream (as defined herein, an intermediary agent is a process in hardware or software that modifies datagrams as they are transmitted from one layer 3 address to another layer 3 address).
  • an intermediary agent is a process in hardware or software that modifies datagrams as they are transmitted from one layer 3 address to another layer 3 address).
  • the connection between intermediary agent 201 and server 104 may also involve Internet 202.
  • One example of such a useful action is an encryption or decryption function on the data stream.
  • encrypted data sent, for example, from client 102 will be decrypted by intermediary agent 201 before it reaches server 104.
  • intermediary agent 201 this enables a separate device ⁇ optimized to perform the encryption/decryption function— to reduce the CPU load of the server.
  • intermediary agent 201 Another example of such a useful action performed by intermediary agent
  • 201 is a compression or decompression function.
  • IP datagram size is set to the sum of the IP header + an MSS value (the MSS value being optionally determined by an MSS discovery process during initiation of the TCP connection, or being set to a predetermined default value).
  • MSS value being optionally determined by an MSS discovery process during initiation of the TCP connection, or being set to a predetermined default value.
  • FIG. 3 shows a diagram of how a given amount of session layer data
  • (session data 301 ) comprised of 6200 bytes is broken down into individual segments for the case of an Ethernet layer 2 implementation that uses an MTU of 1500 bytes.
  • the TCP layer process when the TCP layer process discovers that the MSS of the connection is 1460 bytes (1500 bytes - 20 bytes of IP header - 20 bytes of TCP header), the TCP layer process breaks up 6200 byte session data 301 into four (4) segments of 1480 bytes each (segments 302, - 302 4 ), and one (1 ) segment of 380 bytes (segment 302 5 ); each segment includes a 20 byte TCP header. Then, as is well known, the TCP layer process will send these five (5) segments independently into the IP layer for optimal transmission through the network. However, assume that when each segment is processed by intermediary agent 201 , 20 bytes are added. As a result, the 1480 byte segments become 1500 byte segments, and the 380 byte segment becomes a 400 byte segment.
  • FIG. 4 shows a diagram of how the above-described segments are fragmented.
  • the IP layer process (a) breaks each of the 1500 byte segments into a 1500 byte datagram and a 40 byte datagram (for example, datagrams 401 , and 401 2 ); and (b) changes the 400 byte segment into a 420 byte datagram (datagram 401 9 ).
  • the original five (5) segments have become nine (9) datagrams that are inefficiently transmitted due to the large number of datagrams, and also cause slow-down due to the extra processing overhead required to handle the fragmentation at the IP layer.
  • Embodiments of the present invention advantageously satisfy the above-identified need in the art and provide method and apparatus that optimize Layer I / Layer J connections (for example, Transmission Control Protocol/Internet Protocol
  • TCP/IP (“TCP/IP”) connections in a network having intermediary agents to reduce fragmentation.
  • an intermediary agent is a process in hardware or software that modifies data units (for example, datagrams) as they are transmitted from one layer J (for example, layer 3) address to another layer J (for example, layer 3) address.
  • an embodiment of the present invention is a method for interacting with layer I / layer J connections (for example, TCP/IP connections) in a network having an intermediary agent, which method comprises the steps of: (a) the intermediary agent recognizing a segment transmitted over the client-server connection containing a maximum segment size; and the intermediary agent changing the maximum segment size contained in the segment.
  • the step of changing comprises reducing the maximum segment size by a measure of an increase in data produced by operation of the intermediary agent on data transmitted therethrough.
  • FIG. 1 shows a diagram of a standard configuration of a client-server connection using the Internet as a connection network
  • FIG. 2 shows a diagram of an alternate, but known, configuration of a client-server connection using the Internet as a connection network in which an intermediary agent receives all traffic destined for the server, and performs some action on the data stream;
  • FIG. 3 shows a diagram of how a given data unit is broken down into individual TCP segments for the case of an Ethernet layer 2 implementation that leads to an MTU of 1500 bytes;
  • FIG. 4 shows a diagram of how datagrams associated with TCP segments are fragmented after passing through an intermediary agent
  • FIG. 5 shows a diagram of a configuration of a client-server connection using the Internet as a connection network in which an inventive intermediary agent receives all traffic destined for the server, and performs some action on the data stream;
  • FIG. 6 shows a diagram of how a given data unit is broken down into individual TCP segments for the case of an Ethernet layer 2 implementation that leads to an MTU of 1500 bytes in accordance with the present invention.
  • FIG. 5 shows a diagram of a configuration of a client-server connection (between client 102 and server 104) using Internet 103 as a connection network in which inventive intermediary agent 501 receives all traffic destined for server 104, and performs some action on the data stream.
  • an intermediary agent is a process in hardware or software that modifies data units (for example, datagrams) as they are transmitted from one layer J (for example, layer 3) address to another layer J (for example, layer 3) address.
  • the connection between inventive intermediary agent 501 and server 104 may also involve Internet 202.
  • inventive intermediary agent 501 determines a measure of an increase in datagram size due to the action of inventive intermediary agent 501.
  • the determination of a measure involves predicting an estimated increase in accordance with any one of a number of methods that are well known to those of ordinary skill in the art. Specifically, the method of predicting an estimated increase in datagram size will depend on the particular function performed by intermediary agent 501, for example, encryption, decryption, compression, or decompression functions. Further, in accordance with another embodiment of the present invention, the determination of a measure involves using a predetermined amount. In accordance with this embodiment, the predetermined amount can be set as a configuration parameter, or it may be transmitted to intermediary agents distributed throughout a network using any one of a number of methods that are well known to those of ordinary skill in the art such as, for example and without limitation, broadcasting.
  • intermediary agent 501 uses the measure of an increase in datagram size, at the "start" of a session between client 102 and server 104 (when a connection is established), to alter the value of the Maximum Segment Size ("MSS") transmitted by one or both of them.
  • MSS Maximum Segment Size
  • a layer I process for example, a Transmission Control Protocol ("TCP") layer process
  • TCP Transmission Control Protocol
  • a layer K for example, layer 2
  • intermediary agent 501 is estimated to produce a twenty (20) to one- hundred (100) byte increase in datagram size due to its processing actions.
  • client 102 sends a TCP SYN segment to server 104 (either because a local application wants to initiate a connection, or whenever a connection request is received from another host — the TCP layer process can set an MSS value up to the outgoing interface's Maximum Transport
  • inventive intermediary agent 501 recognizes the segment in accordance with any one of a number of methods that are well known to those of ordinary skill in the art. For example, in one embodiment (useful for TCP/IP), intermediary agent 501 detects SYN segments by searching for the appropriate header indicator. Inventive intermediary agent 501 then changes the segment to alter the value of MSS contained therein, on the fly, so that server 104 receives a value MSS', where MSS' is less than MSS sent by client 102 by, for example, one-hundred (100) bytes.
  • MSS' is less than MSS sent by client 102 by, for example, one-hundred (100) bytes.
  • inventive intermediary agent 501 recognizes the SYN segment in accordance with any one of a number of methods that are well known to those of ordinary skill in the art. For example, in one embodiment
  • intermediary agent 501 detects SYN segments by searching for an appropriate header indicator. Inventive intermediary agent 501 then changes the message to alter the value of MSS contained therein, on the fly, so that client 102 receives a value MSS', where MSS' is less than MSS sent by server 104 by, for example, one-hundred (100) bytes. As those of ordinary skill in the art will readily appreciate, inventive intermediary agent 501 may also change the segment to, for example, recompute a checksum or other error detecting and/or error correcting code.
  • FIG. 6 shows a diagram of how a given amount of session layer data (session data 601) comprised of 6200 bytes is broken down into individual segments in accordance with the embodiment of the present invention for the case of an Ethernet layer 2 implementation that uses an MTU of 1500 bytes.
  • inventive intermediary agent 501 reduced the MSS by 100 bytes
  • the effective MSS used by the TCP layer process is 1360 bytes.
  • the TCP layer process breaks up session data 301 into five (5) segments (segments 602, - 602 5 ) of size 1380, 1380,
  • IP Internet Protocol
  • each datagram reaches intermediary agent 501, it is increased, for example, by 100 bytes.
  • the original datagram size was 100 bytes less than the layer 2 MTU of 1500 bytes, no fragmentation occurs.
  • An embodiment of the present invention provides an advantage in that inventive intermediary agent 501 can determine its own data increase, and alter MSS information on-the-fly; with no further communication necessary by a third party. As a result, this embodiment can be implemented locally on the intermediary agent, and requires no cooperation from a client, a server, or a surrounding network.
  • intermediary agent 501 can be performed as a process implemented in hardware or a software running in a processor incorporated within intermediary agent 501.
  • network systems are designed to be robust in the face of varying MSS settings such as those implemented in accordance with embodiments of the present invention.
  • MSS settings such as those implemented in accordance with embodiments of the present invention.
  • embodiments of the present invention provide a safe procedure that, properly implemented, will not result in network failure.
  • the prediction is statistically correct a fair percentage of the time, the network as a whole will perform more optimally than it would if it were not utilizing embodiments of the present invention (i.e., when performing fragmentation on increased-sized segments).
  • an inventive intermediary can perform the described action whenever it discovers predetermined messages, for example, SYN segments for TCP/IP.
  • embodiments of the present invention relate to any transport protocol such as, for example, the UDP protocol, on top of, for example, a layer 3 protocol.
  • transport protocol such as, for example, the UDP protocol
  • the intermediary agent would be to increase the size of a data stream input thereto, it is possible that the opposite occurs. This means that in certain instances the action of the intermediary agent would be to decrease the size of the data stream input thereto. For these cases, instead of altering MSS by adding an amount thereto as was described above, the intermediary agent would subtract an amount from the MSS.
  • the intermediary agent would determine a measure of a decrease in datagram size due to the action thereof
  • the determination of a measure involves predicting an estimated increase in accordance with any one of a number of methods that are well known to those of ordinary skill in the art. Specifically, the method of predicting an estimated increase in datagram size will depend on the particular function performed by the intermediary agent. Further, in accordance with another embodiment of the present invention, the determination of a measure involves using a predetermined amount.
  • an intermediary agent it is possible for an intermediary agent to increase the size of a data stream input thereto in a first direction, and to decrease the size of a data stream input thereto in a second direction. In which case, the intermediary agent would decrease the MSS for the first direction, and decrease the MSS for the second direction.
  • an estimator associated with an inventive intermediary agent "learns" in accordance with any one of a number of methods that are well known to those of ordinary skill in the art how to optimize its estimate of the size increase so that it most aptly corresponds to the increase generated on the base of one or more statistical measures.

Landscapes

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

Abstract

An embodiment of the present invention optimizes Transmission Control Protocol/Internet Protocol ('TCP/IP') connections in a network having intermediary agents to minimize fragmentation. In particular, an embodiment of the present invention is a method that includes the steps of: (a) the intermediary agent recognizing a segment transmitted over the client-server connection containing a maximum segment size; and the intermediary agent changing the maximum segment size contained in the segment. In one embodiment, the step of changing includes reducing the maximum segment size by a determination of a measure of an increase in data produced by operation of the intermediary agent on data transmitted therethrough.

Description

Optimizing Layer I / Layer J Connections in a Network Having Intermediary Agents
Technical Field of the Invention
The present invention pertains to method and apparatus for optimizing
Layer I / Layer J connections in a network having intermediary agents. In particular, the present invention pertains to TCP/IP connections in a network having intermediary agents. Background of the Invention
A well known set of protocols, known in the art as Transmission Control Protocol/Internet Protocol ("TCP/IP") protocols, govern most of an interconnected network known as the Internet. The TCP/IP protocols conform to an
Open Systems International ("OSI") layered network description wherein: (a) layer 1 is a physical layer that transmits bits of information across a link (it deals with such problems as size and shape of connectors, assignment of functions to pins, conversion of bits to electrical signals, bit-level-synchronization, and so forth): (b) layer 2 is a data link layer that is responsible for transmitting chunks of information across a link (it deals with such problems as checksumming to detect data corruption, coordinating the use of shared media, as in a local area network ("LAN"), and addressing — "Ethernet" is one well known example of a layer 2 protocol); (c) layer 3 is a network layer that enables any pair of systems in the network to communicate with each other (it deals with such problems as route calculation, packet fragmentation and re-assembly when different links in the network have different maximum packet sizes, and congestion control — Internet Protocol ("IP") is perhaps the most well known example of a layer 3 protocol); (d) layer 4 is a transport layer that establishes a reliable communication stream between a pair of systems (it deals with errors that can be introduced by the network layer, i.e., layer 3, such as lost packets, duplicated packets, packet reordering, and fragmentation and re-assembly so that the user of the transport layer can deal with larger-size messages, and so that less efficient network layer fragmentation and reassembly might be avoided - Transmission Control Protocol ("TCP") is perhaps the most well known example of a layer 4 protocol); and (e) layers 5 - 7 have less clear distinctions in practical network implementations (collectively, layers 5 - 7 cover the functionality of an operating system and applications and, as such, are much less standardized then layers 1 -4). These concepts are described in a book entitled "TCP/IP
Illustrated, Volume 1 - The Protocols" by W. Richard Stevens, published by Addison-
Wesley, 1994, and a book entitled "Interconnections, Second Edition Bridgers. Routers, Switches, and Internetworking Protocols" by Radia Perlman, published by
Addison-Wesley, 1999.
FIG. 1 shows a diagram of a standard configuration of a client-server connection (between client 102 and server 104) using Internet 103 as a connection network. When using TCP/IP to communicate, client 102 initiates a connection by sending a TCP "SYN" segment to server 104, and server 104 replies to client 102 with a TCP "SYN-ACK" segment. Next, client 102 replies to server 104 with a TCP "ACK" segment. This represents a normal case in which a successful communications channel is established between client 102 and server 104. After the communications channel has been established, data for an application can be sent via TCP segments from client 102 to server 104 and vice versa.
As is well known in the art, a unit of data at layer 4 is called a segment. Often, however, due to restrictions of a layer 2 implementation, the layer 4 unit of data must be broken up into many smaller units of data, each of which must be sent separately across the physical wire. For example, in Ethernet, the maximum size of a single data frame is approximately 1500 bytes. However, as is well known, many typical transactions at the application level (for example, viewing a web page in HTML, graphics, and so forth) comprise many thousands of bytes of data.
Whenever a connection is established, for example, as illustrated in FIG. 1 , each end has an option of announcing a quantity known as a Maximum Segment Size ("MSS"). The MSS is the maximum segment size one end of a connection expects to receive from the other end of the connection over a layer 4 network. Using the TCP protocol, an MSS option can only appear in a SYN segment. For example, referring to FIG. 1, client 102 may send an MSS to server 104 (thereby announcing the MSS it expects to receive from server 104), and server 104 may send an MSS to client 102 (thereby announcing the MSS it expects to receive from client 102). If one end of a connection does not receive an MSS option from the other end of the connection, a predetermined default value is assumed. Thus, whenever, a TCP layer process sends a SYN segment, either because a local application wants to initiate a connection, or whenever a connection request is received from another host, the TCP layer process can set an MSS value up to the outgoing interface's Maximum Transport
Unit ("MTU"), minus the size of the fixed TCP and IP headers. For example, for an Ethernet, this implies an MSS of up to 1460 bytes. Therefore, any TCP segment longer than 1500 bytes would be broken up into several IP datagrams to be sent over the layer 2 Ethernet. It is important to note that the MSS is just a hint. This means that the network will still operate even if the MSS is wrong, but it will operate sub-optimally. Consider a first case where, after MSS discovery, the derived MTU of the connection (i.e., derived MTU = MSS + IP header +TCP header) is greater that the actual MTU of the connecting network. In the first case, the TCP layer process will generate segments that are larger than the actual MTU of the connecting network. As a result, the IP layer process will react by breaking the segments up in a process known as fragmentation. Consider a second case where, after MSS discovery, the derived MTU of the connection is less than the actual MTU of the connecting network. In the second case, the TCP layer process will break up each TCP segment into more packets than would otherwise have been required. This is a disadvantage due to well-known characteristics of networks wherein fixed overhead per data packet increases when the data packet size is smaller than the MTU of layer 2.
As is well known, one reason fragmentation is inefficient is that fragmentation requires layer 3 to keep track of a sequence of datagrams, and to reform them on receipt. This inefficiency is to be compared with a case where the MSS is correctly set, and the TCP layer process breaks up session layer data into optimally- sized segments. In this case, each of the optimally-sized segments can flow unbroken through layer 3 (IP). Another reason fragmentation is inefficient is that if one of the fragments is lost, the entire TCP segment has to be resent, thereby causing multiple retransmissions. As is well known, besides providing technical difficulties, fragmentation also causes inefficiencies in practical networking hardware implementations because networking devices such as routers and bridges are designed to handle the normal case fast, and to handle exceptional cases such as fragmentation much more slowly.
FIG. 2 shows a diagram of an alternate, but known, configuration of a client-server connection (a connection between client 102 and server 104) using Internet 103 as a connection network in which intermediary agent 201 receives all traffic destined for server 104, and performs some action on the data stream (as defined herein, an intermediary agent is a process in hardware or software that modifies datagrams as they are transmitted from one layer 3 address to another layer 3 address). As shown in FIG. 2, the connection between intermediary agent 201 and server 104 may also involve Internet 202. As is well known, there are certain useful actions that intermediary agent 201 can perform on the data stream that, for purposes of implementation, are transparent to the client-server interaction. One example of such a useful action is an encryption or decryption function on the data stream. As a result, encrypted data sent, for example, from client 102 will be decrypted by intermediary agent 201 before it reaches server 104. Advantageously, this enables a separate device ~ optimized to perform the encryption/decryption function— to reduce the CPU load of the server. Another example of such a useful action performed by intermediary agent
201 is a compression or decompression function.
In applications using, for example, intermediary agent 201, one result of operating on the data stream is that individual IP datagrams at layer 3 (i.e., IP datagrams) that are operated on may need to increase their data size to hold additional information. However, in a typical connectivity implementation, IP datagram size is set to the sum of the IP header + an MSS value (the MSS value being optionally determined by an MSS discovery process during initiation of the TCP connection, or being set to a predetermined default value). As a result, extra data inserted into the IP datagram may cause layer 3 fragmentation because the layer 3 network is unable to process data in chunks bigger than the limits of the particular layer 2 implementation, for example, Ethernet.
FIG. 3 shows a diagram of how a given amount of session layer data
(session data 301 ) comprised of 6200 bytes is broken down into individual segments for the case of an Ethernet layer 2 implementation that uses an MTU of 1500 bytes. As shown in FIG. 3, when the TCP layer process discovers that the MSS of the connection is 1460 bytes (1500 bytes - 20 bytes of IP header - 20 bytes of TCP header), the TCP layer process breaks up 6200 byte session data 301 into four (4) segments of 1480 bytes each (segments 302, - 3024), and one (1 ) segment of 380 bytes (segment 3025); each segment includes a 20 byte TCP header. Then, as is well known, the TCP layer process will send these five (5) segments independently into the IP layer for optimal transmission through the network. However, assume that when each segment is processed by intermediary agent 201 , 20 bytes are added. As a result, the 1480 byte segments become 1500 byte segments, and the 380 byte segment becomes a 400 byte segment.
FIG. 4 shows a diagram of how the above-described segments are fragmented. As shown in FIG. 4, the IP layer process: (a) breaks each of the 1500 byte segments into a 1500 byte datagram and a 40 byte datagram (for example, datagrams 401 , and 4012); and (b) changes the 400 byte segment into a 420 byte datagram (datagram 4019). As a result, due to this process, the original five (5) segments have become nine (9) datagrams that are inefficiently transmitted due to the large number of datagrams, and also cause slow-down due to the extra processing overhead required to handle the fragmentation at the IP layer.
As one can readily appreciate from the above, a need exists in the art for method and apparatus that optimize Layer I / Layer J connections, for example,
(TCP/IP connections) in a network having intermediary agents to reduce fragmentation. Summary of the Invention
Embodiments of the present invention advantageously satisfy the above-identified need in the art and provide method and apparatus that optimize Layer I / Layer J connections (for example, Transmission Control Protocol/Internet Protocol
("TCP/IP") connections) in a network having intermediary agents to reduce fragmentation. As defined herein, an intermediary agent is a process in hardware or software that modifies data units (for example, datagrams) as they are transmitted from one layer J (for example, layer 3) address to another layer J (for example, layer 3) address.
In particular, an embodiment of the present invention is a method for interacting with layer I / layer J connections (for example, TCP/IP connections) in a network having an intermediary agent, which method comprises the steps of: (a) the intermediary agent recognizing a segment transmitted over the client-server connection containing a maximum segment size; and the intermediary agent changing the maximum segment size contained in the segment. In a further embodiment, the step of changing comprises reducing the maximum segment size by a measure of an increase in data produced by operation of the intermediary agent on data transmitted therethrough.
Brief Description of the Figure
FIG. 1 shows a diagram of a standard configuration of a client-server connection using the Internet as a connection network;
FIG. 2 shows a diagram of an alternate, but known, configuration of a client-server connection using the Internet as a connection network in which an intermediary agent receives all traffic destined for the server, and performs some action on the data stream;
FIG. 3 shows a diagram of how a given data unit is broken down into individual TCP segments for the case of an Ethernet layer 2 implementation that leads to an MTU of 1500 bytes;
FIG. 4 shows a diagram of how datagrams associated with TCP segments are fragmented after passing through an intermediary agent;
FIG. 5 shows a diagram of a configuration of a client-server connection using the Internet as a connection network in which an inventive intermediary agent receives all traffic destined for the server, and performs some action on the data stream; and
FIG. 6 shows a diagram of how a given data unit is broken down into individual TCP segments for the case of an Ethernet layer 2 implementation that leads to an MTU of 1500 bytes in accordance with the present invention.
Detailed Description
FIG. 5 shows a diagram of a configuration of a client-server connection (between client 102 and server 104) using Internet 103 as a connection network in which inventive intermediary agent 501 receives all traffic destined for server 104, and performs some action on the data stream. As defined herein, an intermediary agent is a process in hardware or software that modifies data units (for example, datagrams) as they are transmitted from one layer J (for example, layer 3) address to another layer J (for example, layer 3) address. As shown in FIG. 5, the connection between inventive intermediary agent 501 and server 104 may also involve Internet 202. In accordance with an embodiment of the present invention, inventive intermediary agent 501 determines a measure of an increase in datagram size due to the action of inventive intermediary agent 501. In accordance with one embodiment of the present invention, the determination of a measure involves predicting an estimated increase in accordance with any one of a number of methods that are well known to those of ordinary skill in the art. Specifically, the method of predicting an estimated increase in datagram size will depend on the particular function performed by intermediary agent 501, for example, encryption, decryption, compression, or decompression functions. Further, in accordance with another embodiment of the present invention, the determination of a measure involves using a predetermined amount. In accordance with this embodiment, the predetermined amount can be set as a configuration parameter, or it may be transmitted to intermediary agents distributed throughout a network using any one of a number of methods that are well known to those of ordinary skill in the art such as, for example and without limitation, broadcasting. In accordance with the embodiment of the present invention, intermediary agent 501 uses the measure of an increase in datagram size, at the "start" of a session between client 102 and server 104 (when a connection is established), to alter the value of the Maximum Segment Size ("MSS") transmitted by one or both of them. As a result of the intervention of inventive intermediary agent 501 , the MSS received has been reduced by at least the amount of the determined increase. We will refer herein to this activity relating to transmission of MSS, as activity involved in setting up a connection. Advantageously, as a consequence of this, a layer I process, for example, a Transmission Control Protocol ("TCP") layer process, will break up session layer data into smaller TCP segments, and (advantageously in accordance with the present invention), increases in datagram size due to the action of intermediary agent 501 will result in an overall frame size that should be below a layer K (for example, layer 2) threshold.
To illustrate such an embodiment of the present invention operates, assume that intermediary agent 501 is estimated to produce a twenty (20) to one- hundred (100) byte increase in datagram size due to its processing actions. In accordance with the embodiment of the present invention, whenever client 102 sends a TCP SYN segment to server 104 (either because a local application wants to initiate a connection, or whenever a connection request is received from another host — the TCP layer process can set an MSS value up to the outgoing interface's Maximum Transport
Unit ("MTU"), minus the size of the fixed TCP and IP headers), inventive intermediary agent 501 recognizes the segment in accordance with any one of a number of methods that are well known to those of ordinary skill in the art. For example, in one embodiment (useful for TCP/IP), intermediary agent 501 detects SYN segments by searching for the appropriate header indicator. Inventive intermediary agent 501 then changes the segment to alter the value of MSS contained therein, on the fly, so that server 104 receives a value MSS', where MSS' is less than MSS sent by client 102 by, for example, one-hundred (100) bytes. Similarly, whenever server 104 sends a TCP SYN-ACK segment to client 102, inventive intermediary agent 501 recognizes the SYN segment in accordance with any one of a number of methods that are well known to those of ordinary skill in the art. For example, in one embodiment
(useful for TCP/IP), intermediary agent 501 detects SYN segments by searching for an appropriate header indicator. Inventive intermediary agent 501 then changes the message to alter the value of MSS contained therein, on the fly, so that client 102 receives a value MSS', where MSS' is less than MSS sent by server 104 by, for example, one-hundred (100) bytes. As those of ordinary skill in the art will readily appreciate, inventive intermediary agent 501 may also change the segment to, for example, recompute a checksum or other error detecting and/or error correcting code.
FIG. 6 shows a diagram of how a given amount of session layer data (session data 601) comprised of 6200 bytes is broken down into individual segments in accordance with the embodiment of the present invention for the case of an Ethernet layer 2 implementation that uses an MTU of 1500 bytes. As shown in FIG. 6, because inventive intermediary agent 501 reduced the MSS by 100 bytes, the effective MSS used by the TCP layer process is 1360 bytes. As a result, the TCP layer process breaks up session data 301 into five (5) segments (segments 602, - 6025) of size 1380, 1380,
1380, 1380, and 780 bytes, respectively. Then, each of these segments is sent into an Internet Protocol ("IP") layer for transmission across the physical Internet.
However, because of the action of the embodiment of the present invention, whenever each datagram reaches intermediary agent 501, it is increased, for example, by 100 bytes. Thus, since the original datagram size was 100 bytes less than the layer 2 MTU of 1500 bytes, no fragmentation occurs.
An embodiment of the present invention provides an advantage in that inventive intermediary agent 501 can determine its own data increase, and alter MSS information on-the-fly; with no further communication necessary by a third party. As a result, this embodiment can be implemented locally on the intermediary agent, and requires no cooperation from a client, a server, or a surrounding network.
As those of ordinary skill in the art can readily appreciate, the above- described steps performed by intermediary agent 501 can be performed as a process implemented in hardware or a software running in a processor incorporated within intermediary agent 501. As is well known, network systems are designed to be robust in the face of varying MSS settings such as those implemented in accordance with embodiments of the present invention. Thus, even if the estimated data increase were incorrect for some cases, the network will still operate, albeit sub-optimally. This fact enables an embodiment of the present invention to utilize statistical techniques to optimize the predictive techniques. As a result, embodiments of the present invention provide a safe procedure that, properly implemented, will not result in network failure. In particular, if the prediction is statistically correct a fair percentage of the time, the network as a whole will perform more optimally than it would if it were not utilizing embodiments of the present invention (i.e., when performing fragmentation on increased-sized segments).
Although embodiments of the present invention have been described wherein the action performed by inventive intermediary agents take place when setting up a connection, embodiments of the present invention are not limited thereto. As such, in accordance with some embodiments of the present invention, an inventive intermediary can perform the described action whenever it discovers predetermined messages, for example, SYN segments for TCP/IP.
As is well known, it is possible to have the MSS sent from one end of a connection and the MSS sent from the other end of the connection be different. As a result, in accordance with embodiments of the present invention, intermediary agents will alter each of these values separately. Further, When a connection involves multiple intermediary agents, in accordance with embodiments of the present invention, each will perform the inventive function and alter the MSS in accordance with the change in the data stream that it produces. Those skilled in the art will recognize that the foregoing description has been presented for the sake of illustration and description only. As such, it is not intended to be exhaustive or to limit the invention to the precise form disclosed. For example, although the detailed description provided above related to a TCP/IP client server connection, embodiments of the present invention are not limited thereto. In fact, it is within the spirit of the present invention, to include embodiments relating to any layer i / layer j connections in a network having intermediary agents where layers i and j are hierarchically related. Thus, for example, embodiments of the present invention relate to any transport protocol such as, for example, the UDP protocol, on top of, for example, a layer 3 protocol. Although the detailed description set forth above has assumed that the action of an intermediary agent would be to increase the size of a data stream input thereto, it is possible that the opposite occurs. This means that in certain instances the action of the intermediary agent would be to decrease the size of the data stream input thereto. For these cases, instead of altering MSS by adding an amount thereto as was described above, the intermediary agent would subtract an amount from the MSS. For these case, the intermediary agent would determine a measure of a decrease in datagram size due to the action thereof As was described above, the determination of a measure involves predicting an estimated increase in accordance with any one of a number of methods that are well known to those of ordinary skill in the art. Specifically, the method of predicting an estimated increase in datagram size will depend on the particular function performed by the intermediary agent. Further, in accordance with another embodiment of the present invention, the determination of a measure involves using a predetermined amount.
It is also noted that it is possible for an intermediary agent to increase the size of a data stream input thereto in a first direction, and to decrease the size of a data stream input thereto in a second direction. In which case, the intermediary agent would decrease the MSS for the first direction, and decrease the MSS for the second direction.
In further addition, it is within the spirit of the present invention that an estimator associated with an inventive intermediary agent "learns" in accordance with any one of a number of methods that are well known to those of ordinary skill in the art how to optimize its estimate of the size increase so that it most aptly corresponds to the increase generated on the base of one or more statistical measures.

Claims

What is claimed is:
1. A method for interacting with a layer I / layer J client-server connection in a network having an intermediary agent, which method comprises the steps of: recognizing a segment transmitted over the client-server connection that contain a maximum segment size; and changing the maximum segment size contained in the segment.
2. The method of claim 1 wherein the layer I / layer J connection is a TCP/IP or a UDP/IP connection.
3. The method of claim 2 wherein the step of recognizing comprises recognizing SYN segments.
4. The method of claim 1 wherein the step of changing comprises changing by a measure of an amount the intermediary agent changes a data stream applied thereto.
5. The method of claim 1 wherein the step of changing comprises reducing the maximum segment size by a determined amount.
6. The method of claim 1 wherein the step of changing comprises increasing the maximum segment size by a determined amount.
7. The method of claim 5 wherein the determined amount is a measure of an increase in data produced by operation of the intermediary agent on data transmitted to it over the client server connection.
8. The method of claim 7 wherein the measure is a predetermined amount.
9. The method of claim 7 wherein the measure is an estimated increase in data produced by operation of the intermediary agent on data transmitted to it over the client server connection.
10. An intermediary agent which interacts with a layer I / layer J client-server connection in a network comprises: a segment recognizer which recognizes a segment transmitted over the client-server connection that contain a maximum segment size; and a changer which changes the maximum segment size contained in the segment.
11. The intermediary agent of claim 10 wherein the layer I / layer J connection is a TCP/IP or a UDP/IP connection.
12. The intermediary agent of claim 11 wherein the segment recognizer recognizes SYN segments.
13. The intermediary agent of claim 10 wherein the changer changes by a measure of an amount the intermediary agent changes a data stream applied thereto.
14. The intermediary agent of claim 10 wherein the changer reduces the maximum segment size by a determined amount.
15. The intermediary agent of claim 10 wherein the changer increases the maximum segment size by a determined amount.
16. The intermediary agent of claim 14 wherein the determined amount is a measure of an increase in data produced by operation of the intermediary agent on data transmitted to it over the client server connection.
17. The intermediary agent of claim 16 wherein the measure is a predetermined amount.
18. The intermediary agent of claim 16 wherein the measure is an estimated increase in data produced by operation of the intermediary agent on data transmitted to it over the client server connection.
PCT/US2001/005332 2000-04-27 2001-02-20 Optimizing layer i/layer j connections in a network having intermediary agents WO2001084805A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001241576A AU2001241576A1 (en) 2000-04-27 2001-02-20 Optimizing layer i/layer j connections in a network having intermediary agents

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US56005100A 2000-04-27 2000-04-27
US09/560,051 2000-04-27

Publications (2)

Publication Number Publication Date
WO2001084805A2 true WO2001084805A2 (en) 2001-11-08
WO2001084805A3 WO2001084805A3 (en) 2002-02-14

Family

ID=24236146

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/005332 WO2001084805A2 (en) 2000-04-27 2001-02-20 Optimizing layer i/layer j connections in a network having intermediary agents

Country Status (2)

Country Link
AU (1) AU2001241576A1 (en)
WO (1) WO2001084805A2 (en)

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
AUGE ET AL: "Performance optimisation evaluation of TCP/IP over wireless networks" PERFORMANCE, COMPUTING AND COMMUNICATIONS, 1998. IPCCC '98., IEEE INTERNATIONAL TEMPE/PHOENIX, AZ, USA 16-18 FEB. 1998, NEW YORK, NY, USA,IEEE, US, 16 February 1998 (1998-02-16), pages 395-401, XP010270620 ISBN: 0-7803-4468-5 *
BAI Y ET AL: "TCP/RLP COORDINATION AND INTERPROTOCOL SIGNALING FOR WIRELESS INTERNET" 1999 IEEE 49TH. VEHICULAR TECHNOLOGY CONFERENCE. HOUSTON, TX, MAY 16 - 20, 1999, IEEE VEHICULAR TECHNOLOGY CONFERENCE, NEW YORK, NY: IEEE, US, vol. 3 CONF. 49, 16 May 1999 (1999-05-16), pages 1945-1951, XP000936151 ISBN: 0-7803-5566-0 *

Also Published As

Publication number Publication date
AU2001241576A1 (en) 2001-11-12
WO2001084805A3 (en) 2002-02-14

Similar Documents

Publication Publication Date Title
US5627829A (en) Method for reducing unnecessary traffic over a computer network
Maltz et al. TCP Splice for application layer proxy performance
US5987022A (en) Method for transmitting multiple-protocol packetized data
KR100785293B1 (en) System and Method for TCP Congestion Control Using Multiple TCP ACKs
JP5164123B2 (en) System and method for improving throughput
US8553572B2 (en) Internet protocol optimizer
JP4164365B2 (en) Technology for improving TCP performance over a wireless interface by providing a dual proxy device
US7953114B2 (en) System and method for achieving accelerated throughput
EP1523148A1 (en) Header compression/decompression device and header compression/decompression method
US20030131079A1 (en) Performance enhancing proxy techniques for internet protocol traffic
US20050022089A1 (en) System and method for a communication network
US8085669B2 (en) Session relay device and session relay method
JP2014509483A (en) Mechanisms to improve the performance of transmission control protocols in wireless networks
WO2012092586A2 (en) Methods and systems for transmission of data over computer networks
US7480301B2 (en) Method, system and article for improved TCP performance during retransmission in response to selective acknowledgement
US8578040B2 (en) Method, system and article for client application control of network transmission loss tolerance
US7593318B2 (en) Method and apparatus for header updating
EP1505759B1 (en) Method and device for transmitting/receiving data using acknowledged transport layer protocols
WO2001084805A2 (en) Optimizing layer i/layer j connections in a network having intermediary agents
US7342938B1 (en) Spectrally efficient approach to protection of key elements in a non-homogenous data stream
US20070070999A1 (en) Synchronization of historical data without retransmission
US11134020B1 (en) Flow control of two TCP streams between three network nodes
JP3845392B2 (en) BAND CONTROL DEVICE AND BAND CONTROL SYSTEM
KR100745238B1 (en) Error detection system and method for the wire section of a mobile phone
US7715431B1 (en) Fallback for V.42 modem-over-internet-protocol (MoIP) gateways method and apparatus

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
AK Designated states

Kind code of ref document: A3

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 69(1) EPC DATED 07-02-2003

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP