WO2000067433A1 - Method and apparatus for optimizing a buffer - Google Patents
Method and apparatus for optimizing a buffer Download PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9047—Buffering arrangements including multiple buffers, e.g. buffer pools
- H04L49/9052—Buffering arrangements including multiple buffers, e.g. buffer pools with buffers of different sizes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
- H04L49/9078—Intermediate storage in different physical parts of a node or terminal using an external memory or storage device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/166—IP fragmentation; TCP segmentation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/24—Negotiation of communication capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/06—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
- H04W28/065—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information using assembly or disassembly of packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/10—Flow control between communication endpoints
- H04W28/14—Flow 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.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
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
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.
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)
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)
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 |
-
2000
- 2000-04-19 WO PCT/US2000/010631 patent/WO2000067433A1/en active Application Filing
Patent Citations (2)
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)
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 | |
US8619770B2 (en) | Length indicator optimization | |
EP1134942A1 (en) | Method and arrangement for control of non real-time application flows | |
US7907600B2 (en) | System and method for optimizing robust header compression (ROHC) in high delay variance environment | |
WO1999051055A2 (en) | A method in packet data transmission between a wireless terminal and a mobile ip router | |
CN101772975A (en) | In-order data delivery during handover in a wireless communication system | |
WO2007015596A1 (en) | Method and apparatus for controlling rate of voice service in a mobile communication system supporting voice service via packet network | |
KR20030015835A (en) | Intelligent ip relay apparatus and method thereof | |
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 | |
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 |