WO2000067433A1 - Method and apparatus for optimizing a buffer - Google Patents

Method and apparatus for optimizing a buffer Download PDF

Info

Publication number
WO2000067433A1
WO2000067433A1 PCT/US2000/010631 US0010631W WO0067433A1 WO 2000067433 A1 WO2000067433 A1 WO 2000067433A1 US 0010631 W US0010631 W US 0010631W WO 0067433 A1 WO0067433 A1 WO 0067433A1
Authority
WO
WIPO (PCT)
Prior art keywords
buffer
mss
segment size
data
tcp
Prior art date
Application number
PCT/US2000/010631
Other languages
French (fr)
Inventor
Shreesha Ramanna
Rajesh S. Pazhyannur
Kurian P. Jacob
Jay P. Jayapalan
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.
Publication of WO2000067433A1 publication Critical patent/WO2000067433A1/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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • H04L49/9052Buffering arrangements including multiple buffers, e.g. buffer pools with buffers of different sizes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9078Intermediate storage in different physical parts of a node or terminal using an external memory or storage device
    • 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]
    • 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/24Negotiation of communication capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/06Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
    • H04W28/065Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information using assembly or disassembly of packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/10Flow control between communication endpoints
    • H04W28/14Flow control between communication endpoints using intermediate storage

Definitions

  • FIG. 3 is a block diagram of a buffer in accordance with the preferred embodiment of the present invention.
  • a TCP/IP session is set up between a server and a remote unit.
  • a Maximum Segment Size (MSS) is established for data transmission.
  • MSS Maximum Segment Size
  • Both a gateway and a BSC/MSC vary internal buffer sizes based on the MSS. More particularly, the gateway and the BSC/MSC contain internal buffers that dynamically vary in size based on the negotiated MSS. Data transmission then takes place between the server and the remote unit utilizing the dynamically-adjusted buffers.

Abstract

When data transmission is desired, a TCP/IP session is set up between a server (112) and a remote unit (104). As part of a negotiation between the server (112) and remote unit (104), a Maximum Segment Size (MSS) is established for data transmission. Both a gateway (110) and a BSC/MSC (108) vary internal buffer sizes based on the MSS. More particularly, the gateway (110) and the BSC/MSC (108) contain internal buffers that dynamically vary in size based on the negotiated MSS. Data transmission then takes place between the server (112) and the remote unit (104) utilizing the buffers.

Description

METHOD AND APPARATUS FOR OPTIMIZING A BUFFER
Field of the Invention
The present invention relates generally to optimizing a buffer and, in particular, to optimizing a buffer during a Transmission Control Protocol/Internet Protocol (TCP/IP) session.
Background of the Invention
During a file transfer using a Transmission Control Protocol/Internet Protocol (TCP/IP) session, data is usually stored in buffers in order to prevent packet drops. The buffers are usually placed in network equipment having higher data input than output.
Data traffic using TCP/IP over low-speed cellular networks is very sensitive to buffer size. The sensitivity manifests itself through packet drops, timeouts, and eventually, reduced throughput.
Therefore, a need exists for a method and apparatus for a optimizing a buffer that reduces packet drops, timeouts, and improves packet throughput.
Brief Description of the Drawings
FIG. 1 is a block diagram of a communication system in accordance with the preferred embodiment of the present invention. FIG. 2 illustrates TCP/IP throughput based on buffer size for Maximum Segment Sizes (MSSs) of 500, 1000, and 1500 bytes.
FIG. 3 is a block diagram of a buffer in accordance with the preferred embodiment of the present invention.
FIG. 4 is a flow chart illustrating operation of the buffer of FIG. 3 in accordance with the preferred embodiment of the present invention. FIG. 5 is a flow chart illustrating operation of the buffer of FIG. 3 in accordance with an alternate embodiment of the present invention.
Detailed Description of the Drawings
To address the above-discussed need, a method and apparatus for optimizing a buffer is described herein.
In accordance with the preferred embodiment of the present invention, when data transmission is desired, a TCP/IP session is set up between a server and a remote unit. As part of a negotiation between the server and remote unit, a Maximum Segment Size (MSS) is established for data transmission. Both a gateway and a BSC/MSC vary internal buffer sizes based on the MSS. More particularly, the gateway and the BSC/MSC contain internal buffers that dynamically vary in size based on the negotiated MSS. Data transmission then takes place between the server and the remote unit utilizing the dynamically-adjusted buffers. The present invention encompasses a method for optimizing a buffer, the method comprising the steps of determining a segment size for a data transmission, and varying a buffer size based on the determined segment size. In the preferred embodiment of the present invention the step of determining the segment size comprises the step of determining a Maximum Segment Size (MSS) for a TCP/IP session.
The present invention additionally encompasses a method for optimizing a buffer, the method comprising the steps of receiving a packet for a first data- transmission session and receiving a packet for a second data-transmission session. A determination is made to whether a number of packets buffered for the first data-transmission session exceeds a threshold and to whether a number of packets buffered for the second data-transmission session exceeds the threshold. The packet for the first data-transmission session is dropped if the number of packets buffered for the first data-transmission session exceeds the threshold and the packet for the second data-transmission session is dropped if the number of packets buffered for the second data-transmission session exceeds the threshold.
Finally, the present invention encompasses an apparatus comprising a variable length buffer having data and a segment size as an input and outputting buffered data. In the preferred embodiment of the present invention the buffered data was previously stored within the variable length buffer only if the variable length buffer contained an amount of data less than a threshold based on the segment size.
Turning now to the drawings, where like numerals designate like components, FIG. 1 is a block diagram of communication system 100 in accordance with the preferred embodiment of the present invention. In the preferred embodiment of the present invention, communication system 100 utilizes a Code Division Multiple Access (CDMA) system protocol as described in Cellular System Remote unit-Base Station Compatibility Standard of the Electronic Industry Association/Telecommunications Industry Association Interim Standard 95 (TIA/EIA/IS-95B) , which is incorporated by reference herein. (EIA/TIA can be contacted at 2001 Pennsylvania Ave. NW Washington DC 20006) . In alternate embodiments communication system 100 may utilize other analog or digital cellular communication system protocols such as, but not limited to, the Narrowband Advanced Mobile Phone Service (NAMPS) protocol, the Advanced Mobile Phone Service (AMPS) protocol, the Global System for Mobile Communications (GSM) protocol, the Personal Digital Cellular (PDC) protocol, or the United States Digital Cellular (USDC) protocol. Communication system 100 includes remote unit 104, base station 106, Base Station Controller/Mobile Switching Center (BSC/MSC) 108, gateway 110, and server 112. It is contemplated that network elements within communication system 100 are configured in well known manners with processors, memories, instruction sets, and the like, which function in any suitable manner to perform the function set forth herein. As shown, computer 102 and server 112 are coupled to remote unit 104 and internet 114, respectively. In the preferred embodiment of the present invention, base station 106 is preferably a Motorola base station and BSC/MSC 108 is preferably a Motorola BSC and/or MSC component. Additionally, communication between remote unit 104 and base station 106 takes place utilizing over-the-air communication signal 116.
Operation of communication system 100 in accordance with the preferred embodiment of the present invention occurs as follows: When data transmission between computer 102 and internet 114 is desired, a data transmission session is set up between server 112 and remote unit 104. In the preferred embodiment of the present invention the data transmission session is a Transmission Control Protocol/Internet Protocol (TCP/IP) session, however, in alternate embodiments of the present invention, other transmission control protocols may be utilized. As part of a negotiation between server 112 and remote unit 104, an MSS is established for data transmission. In particular the MSS is a maximum TCP packet size allowed for the negotiated session. The MSS is based on the largest frame size that a link layer protocol can handle, the processing requirements of the two end points, and on the reliability of the network. Although the MSS is fixed for the duration of the TCP/IP session, the MSS varies between sessions based on negotiations between the sender (server 112) and the receiver (computer 102), typically at the start of the session. It should be noted that the MSS is negotiated strictly between the end points and intermediate elements like BSC/MSC cannot modify it.
In the preferred embodiment of the present invention both gateway 110 and BSC/MSC 108 determine the MSS for the purpose of buffer management and vary internal buffer sizes based on the MSS. More particularly, gateway 110 and BSC/MSC 108 contain internal buffers (shown in FIG. 2) that dynamically vary in size based on the negotiated MSS. In the preferred embodiment of the present invention buffers in both gateway 110 and BSC/MSC 108 are adjusted to three times the MSS. When multiple TCP/IP sessions are conducted by a single remote unit, gateway 110 and BSC/MSC 108 adjust internal buffers to three times the largest negotiated MSS. Data transmission then takes place between server 112 and remote unit 104 utilizing the buffers.
FIG. 2 illustrates TCP/IP throughput based on buffer size for MSSs of 500, 1000, and 1500 bytes. The buffer size in x*MSS are depicted on the x axis (where x is an integer) . Thus, a 500 byte MSS with a range of 2-6 on the x-axis implies a buffer of 1 to 3 Kbytes, while for a 1500 byte MSS the range of 2-6 implies 3-9 Kbytes. As is evident the benefits of the buffering mechanism described are two fold. Firstly, buffering in accordance with the preferred embodiment reduces the total buffer size required at the BSC/MSC and gateway, and secondly, buffering in accordance with the preferred embodiment of the present invention prevents the reduction in the TCP throughput due to buffers greater or lesser than three times MSS.
FIG. 3 is a block diagram of variable-length buffer 300 in accordance with the preferred embodiment of the present invention. As discussed above, buffer 300 resides internal to gateway 110 and BSC/MSC 108, however, in alternate embodiments of the present invention, buffer 300 may reside in other network elements (e.g., routers, intermediate servers and network elements) . As is evident, buffer 300 has a data input path and a data output path, as well as an MSS input. Operation of buffer 300 in accordance with the preferred embodiment of the present invention occurs as described in FIG. 4.
The logic flow begins at step 400 where it is determined if a data transmission between remote unit 104 and server 112 needs to take place. If at step 400, it is determined that data transmission does not need to take place, the logic flow returns to step 400, otherwise the logic flow continues to step 401 where a data transmission session is set up between server 112 and remote unit 104. In the preferred embodiment of the present invention the data transmission session is a TCP/IP session, however in alternate embodiments of the preferred embodiment, the data transmission session may utilize other transmission protocols such as ISO transport protocols and any modified TCP for wireless applications. At step 403 buffer 300 determines the current MSS. As discussed above, the MSS is a negotiated maximum segment size and during file transfer, the TCP segments are usually the same length as the MSS. In response to the MSS, buffer 300 adjusts its size to three times the MSS (step 405) . At step 407 data transmission proceeds at optimum throughput utilizing the adjusted buffer. Finally at step 408 TCP/IP connection ends. The logic flow then returns to step 400 until further data transmission needs to take place.
FIG. 5 is a flow chart illustrating operation of the buffer of FIG. 3 for two TCP/IP connections in accordance with an alternate embodiment of the present invention. In the alternate embodiment of the present invention, multiple TCP/IP connections for multiple users are supported using a single buffer element. For each TCP connection, the number of packets buffered is monitored separately, and when the limit exceeds a threshold (e.g., 3*MSS) , new packets are dropped. This implementation is equivalent to maintaining a buffer with size 3*MSS for each user, yet all users share a common buffer.
The logic flow begins at step 501 where buffer 300 receives a packet for a first data-transmission session (e.g., TCP/IP session) and determines a threshold (MSS) . At step 503, buffer 300 receives a packet for a second data-transmission session (e.g., TCP/IP session) . Next, at step 505 buffer 300 determines if a number of packets buffered for the first • connection exceeds a threshold. If, at step 505, buffer 300 determines that the number of packets buffered for the first TCP/IP session exceeds the threshold, then the logic flow continues to step 507 where the packet is dropped (i.e., not buffered), and the logic flow continues to step 511. If, at step 505, buffer 300 determines that the number of packets buffered for the first TCP/IP session does not exceed the threshold, then the logic flow continues to step 509 where the packet is buffered in buffer 300. The logic flow continues to step 511. At step 511 buffer 300 determines if a number of packets buffered for the second connection exceeds the threshold. If, at step 511, buffer 300 determines that the number of packets buffered for the second TCP/IP session exceeds the threshold, then the logic flow continues to step 513 where the packet is dropped (i.e., not buffered), and the logic flow returns to step 501. If, at step 511, buffer 300 determines that the number of packets buffered for the second TCP/IP session does not exceed the threshold, then the logic flow continues to step 515 where the packet is buffered in buffer 300. The logic flow returns to step 501.
The descriptions of the invention, the specific details, and the drawings mentioned above, are not meant to limit the scope of the present invention. For example, in the preferred embodiment of the present invention the MSS is determined by monitoring the messaging that takes place during TCP/IP negotiation, however, in alternate embodiments of the present invention, the MSS may be determined in other ways. For example, the MSS could be determined at the BSC/MSC based on the PPP frame size and IP packet type (TCP or UDP) . In this situation the MSS information does not have to be signaled across the BSC/MSC and gateway. Alternatively, the gateway can determine the MSS and notify the BS/MSC. Additionally it should be noted that a buffer size may be adjusted in several ways. For example, physical memory may be allocated for storage, where the memory allocated is changed based on segment size. Alternatively, a static block of memory may be allocated for buffering, and packets may be withheld from storage if the current amount of data stored on the buffer exceeds a threshold. It is the intent of the inventors that various modifications can be made to the present invention without varying from the spirit and scope of the invention, and it is intended that all such modifications come within the scope of the following claims and their equivalents.

Claims

Claims
1. A method for optimizing a buffer, the method comprising the steps of: determining a segment size for a data transmission to produce a determined segment size; and varying a buffer size based on the determined segment size.
2. The method of claim 1 wherein the step of determining the segment size comprises the step of determining a Maximum Segment Size (MSS) .
3. The method of claim 2 wherein the step of determining the MSS comprises the step of determining the MSS for a Transmission Control Protocol/Internet Protocol (TCP/IP) session.
4. The method of claim 2 wherein the step of varying the buffer size based on the determined segment size comprises the step of varying the buffer size to approximately 3*MSS.
5. The method of claim 1 wherein the step of determining a segment size for a data transmission comprises the step of determining a segment size for a Transmission Control Protocol/Internet Protocol (TCP/IP) session.
6. An apparatus comprising: a variable length buffer having data and a segment size as an input and outputting buffered data, wherein the buffered data was previously stored within the variable length buffer only if the variable length buffer contained an amount of data less than a threshold based on the segment size.
7. The apparatus of claim 6 wherein the segment size is a Maximum Segment Size (MSS) .
8. The apparatus of claim 7 wherein the threshold is approximately 3*MSS.
9. The apparatus of claim 6 wherein the buffered data comprises data from a Transmission Control Protocol/Internet Protocol (TCP/IP) session.
PCT/US2000/010631 1999-05-03 2000-04-19 Method and apparatus for optimizing a buffer WO2000067433A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US30386199A 1999-05-03 1999-05-03
US09/303,861 1999-05-03

Publications (1)

Publication Number Publication Date
WO2000067433A1 true WO2000067433A1 (en) 2000-11-09

Family

ID=23174032

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/010631 WO2000067433A1 (en) 1999-05-03 2000-04-19 Method and apparatus for optimizing a buffer

Country Status (1)

Country Link
WO (1) WO2000067433A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002058345A2 (en) * 2001-01-22 2002-07-25 Sharewave, Inc. Method for allocating receive buffers to accommodate retransmission scheme in wireless computer networks
US7275093B1 (en) * 2000-04-26 2007-09-25 3 Com Corporation Methods and device for managing message size transmitted over a network
US8250233B2 (en) * 2002-11-07 2012-08-21 Research In Motion Limited Pseudo-interactive input processing in wireless environments
EP4044535A4 (en) * 2019-11-26 2022-11-23 Huawei Technologies Co., Ltd. Method for acquiring common maximum segment size (mss), and device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5793762A (en) * 1994-04-12 1998-08-11 U S West Technologies, Inc. System and method for providing packet data and voice services to mobile subscribers
US5910946A (en) * 1997-01-13 1999-06-08 Samsung Electronics Co., Ltd. Wireless internet network architecture for voice and data communications

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5793762A (en) * 1994-04-12 1998-08-11 U S West Technologies, Inc. System and method for providing packet data and voice services to mobile subscribers
US5910946A (en) * 1997-01-13 1999-06-08 Samsung Electronics Co., Ltd. Wireless internet network architecture for voice and data communications

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7275093B1 (en) * 2000-04-26 2007-09-25 3 Com Corporation Methods and device for managing message size transmitted over a network
WO2002058345A2 (en) * 2001-01-22 2002-07-25 Sharewave, Inc. Method for allocating receive buffers to accommodate retransmission scheme in wireless computer networks
WO2002058345A3 (en) * 2001-01-22 2004-02-12 Sharewave Inc Method for allocating receive buffers to accommodate retransmission scheme in wireless computer networks
US8250233B2 (en) * 2002-11-07 2012-08-21 Research In Motion Limited Pseudo-interactive input processing in wireless environments
US20160366570A1 (en) * 2002-11-07 2016-12-15 Blackberry Limited Pseudo-interactive input processing in wireless environments
EP4044535A4 (en) * 2019-11-26 2022-11-23 Huawei Technologies Co., Ltd. Method for acquiring common maximum segment size (mss), and device

Similar Documents

Publication Publication Date Title
EP1520377B1 (en) Adaptive feedback technique implemented in mobile IP networks
EP1913710B1 (en) System and method for congestion control signaling
CA2440814C (en) Method and apparatus for providing multiple quality of service levels in a wireless packet data services connection
EP1122925B1 (en) Header compression for general packet radio service tunneling protocol (GTP)
RU2390960C2 (en) Method for generation of low level data unit in wireless mobile communication networks
EP1529381B1 (en) Arrangements and method for controlling transmission of data bits
US8189532B2 (en) Mobile node, a method or handover and a computer program
US20030179720A1 (en) Congestion control in wireless telecommunication networks
EP1134942A1 (en) Method and arrangement for control of non real-time application flows
US8619770B2 (en) Length indicator optimization
JP5866387B2 (en) System and method for optimizing robust header compression (ROHC) in environments with large delay variation
EP1070406A2 (en) A method in packet data transmission between a wireless terminal and a mobile ip router
KR100909536B1 (en) Intelligent Internet Protocol Packet Relay Device and Method
WO2007015596A1 (en) Method and apparatus for controlling rate of voice service in a mobile communication system supporting voice service via packet network
US9641447B2 (en) Adaptive relative bitrate manager for TCP depending flow control
EP1472835B1 (en) Processing different size packet headers for a packet based conversational service in a mobile communications system
US7466983B2 (en) Overload protection in packet communication networks
EP1779378A1 (en) Apparatus and method for efficiently supporting voip in a wireless communication system
WO2000067433A1 (en) Method and apparatus for optimizing a buffer
KR101231793B1 (en) Methods and apparatus for optimizing a tcp session for a wireless network
Lars-Åke et al. Requirements on the tcp/ip protocol stack for real-time communication in wireless environments

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): BR JP KR

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP