US20060143294A1 - System and method for efficiently managing data transports - Google Patents
System and method for efficiently managing data transports Download PDFInfo
- Publication number
- US20060143294A1 US20060143294A1 US10/260,063 US26006302A US2006143294A1 US 20060143294 A1 US20060143294 A1 US 20060143294A1 US 26006302 A US26006302 A US 26006302A US 2006143294 A1 US2006143294 A1 US 2006143294A1
- Authority
- US
- United States
- Prior art keywords
- socket connection
- socket
- window size
- application
- maximum data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/15—Flow control; Congestion control in relation to multipoint traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/76—Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions
- H04L47/762—Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions triggered by the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/80—Actions related to the user profile or the type of traffic
- H04L47/803—Application aware
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/80—Actions related to the user profile or the type of traffic
- H04L47/805—QOS or priority aware
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/824—Applicable to portable or mobile terminals
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/02—Processing of mobility data, e.g. registration information at HLR [Home Location Register] or VLR [Visitor Location Register]; Transfer of mobility data, e.g. between HLR, VLR or external networks
- H04W8/04—Registration at HLR or HSS [Home Subscriber Server]
Definitions
- This invention relates generally to the field of data processing systems. More particularly, the invention relates to a system and method for prioritizing data transports on a data processing device.
- FIG. 1 A typical layered network architecture is illustrated in FIG. 1 .
- Each layer within the architecture performs a specific function to reliably transmit data from a source node 195 (e.g., a client computer) to a destination node 196 (e.g., a network server).
- a source node 195 e.g., a client computer
- a destination node 196 e.g., a network server
- the data is processed, in succession by a transport layer 180 , a network layer 170 and a data-link layer 160 before being transmitted over the actual physical connection 165 between the two nodes.
- the data is then processed in reverse order, by the data-link layer 161 , the network payer 171 , and the transport layer 185 before being handed off to the receiving application 191 .
- TCP/IP protocol Transmission Control Protocol/Internet Protocol
- the well known TCP/IP protocol operates at the transport and network layers, respectively.
- the TCP transport layer is responsible for ensuring that all data associated with a particular data transmission arrives reliably and in the correct order at its destination.
- a virtual connection 187 (also referred to herein as a “socket connection”) is established between a TCP socket 182 opened at the destination transport layer 185 and a TCP socket 181 opened at the source transport layer 180 .
- the TCP sockets 181 , 182 perform flow control to ensure that the data transmitted form the source node is provided to the receiving node at an acceptable data rate. Specifically, a “window” is established defining the amount of outstanding data a source node 195 can send before it receives an acknowledgment back from the receiving node 196 (i.e., indicating that it has successfully received all or a portion of the data).
- the transmitting socket 181 can only send 64 KB of data and then it must stop and wait for an acknowledgment from the receiving socket 182 that some or all of the data has been received. If the receiving socket 182 acknowledges that all of the data has been received then the transmitting socket 181 is free to transmit another 64 KB.
- the transmitting socket 181 If, however, the transmitting socket 181 receives an acknowledgment from the receiver that it only received the first 32 KB (which could happen, for example, if the second 32 KB was still in transit or was lost), then the transmitting socket 181 will only send another 32 KB, since it cannot have more than 64 KB of unacknowledged data outstanding (i.e., the second 32 KB of data plus the third).
- the TCP window throttles the transmission speed based on how quickly the receiving application can process it.
- the TCP window is typically defined by a 16-bit TCP header field. As such, the largest window that can be used for a standard TCP connection is 2 16 KB (64 KB).
- a client may concurrently have several different socket connections open with a server or client, or with several different servers/clients.
- Each socket connection may not be utilized in the same manner, however.
- the user may be interactively browsing web pages via one socket connection while receiving an automated software upgrade or e-mail message over another socket connection. This may result in a degradation of the interactive user experience, particularly on networks which allocate a relatively small amount of bandwidth per device (e.g., wireless networks such as Cellular Digital Packet Data and ARDIS networks). Under these circumstances, it would be useful to have the ability to prioritize the socket connections such that the interactive connections are provided with a relatively larger amount of bandwidth than the non-interactive connections.
- a system for allocating bandwidth comprising: a transport layer to support a first socket connection for a first application and a second socket connection for a second application; and a socket prioritization module to allocate relatively more bandwidth to the first socket connection relative to the second socket connection, wherein allocation of bandwidth is based on one or more characteristics of the first application and/or the second application.
- FIG. 1 illustrates an exemplary network architecture with a plurality of network layers.
- FIG. 2 illustrates an exemplary data processing device communicating with an exemplary data service.
- FIG. 3 illustrates one embodiment of a system for prioritizing socket connections.
- FIG. 4 a illustrates one embodiment of a method for allocating bandwidth for new background sockets.
- FIG. 4 b illustrates one embodiment of a method for allocating bandwidth for new foreground sockets.
- FIG. 4 c illustrates one embodiment of a method for allocating bandwidth based on relative socket priority.
- FIG. 5 illustrates a technique for allocating bandwidth to a socket by setting and resetting transport window size.
- One embodiment of the invention is employed on a wireless data processing device which operates in conjunction with a data processing service such as that described in co-pending application entitled N ETWORK P ORTAL S YSTEM , A PPARATUS AND M ETHOD , Ser. No. 09/714,897, Filed Nov. 15, 2000 (hereinafter “Network Portal Application”), which is assigned to the assignee of the present application and which is incorporated herein by reference.
- Network Portal Application Certain aspects of this data processing device and data processing service will now be described, followed by a detailed description of an advanced system and method for processing data object identification codes.
- FIG. 2 illustrates one embodiment of a data processing service 100 comprised of one or more servers.
- the data processing service provides a portal through which data processing devices 110 may access content (e.g., Web pages, multimedia content, e-mail, instant messages . . . etc) from external Internet sites 130 .
- content e.g., Web pages, multimedia content, e-mail, instant messages . . . etc
- the service 100 converts standard applications and data into a format which each wireless data processing device 110 can properly interpret.
- the service 100 includes a content conversion module 120 for processing requests for Internet content 140 .
- the service 100 acts as a proxy for the data processing device 110 , forwarding Internet requests 140 , 141 to the appropriate Internet site 130 on behalf of the data processing device 110 , receiving responses from the Internet site 130 in a standard Internet format (e.g., Web pages with embedded audio/video and graphical content, e-mail messages with attachments, . . . etc), and converting the standard Internet responses 142 into a format 143 which the data processing device 110 can process (e.g., bytecodes as described in the Network Portal Application).
- a standard Internet format e.g., Web pages with embedded audio/video and graphical content, e-mail messages with attachments, . . . etc
- converting the standard Internet responses 142 into a format 143 which the data processing device 110 can process e.g., bytecodes as described in the Network Portal Application.
- the conversion module 120 may include a hypertext markup language (“HTML”) rendering module (not shown) for interpreting HTML code and downloading any embedded content in the HTML code (e.g., graphics, video, sound, . . . etc) to the service 100 .
- the conversion module 120 may then combine the HTML code and embedded content and generate a set of bytecodes for accurately reproducing the requested content on the data processing device 110 .
- the bytecodes may be Java bytecodes/applets.
- the conversion module 120 may generate various other types of interpreted and/or non-interpreted code, depending on the particular type of data processing device 110 being used (e.g., one with an interpreter module or one without).
- one embodiment of the service 100 maintains an intimate knowledge of the capabilities/configuration of each data processing device 110 (e.g., screen size, graphics/audio capabilities, available memory, processing power, user preferences, . . . etc) it can reconstruct the requested Internet content accurately, while at the same time minimizing the bandwidth required to transmit the content to the device 110 .
- the conversion module 120 may perform pre-scaling and color depth adjustments to the requested content so that it will be rendered properly within the data processing device's 110 's display. In making these calculations, the conversion may factor in the memory and processing power available on the data processing device 110 .
- the conversion module 120 may compress the requested content using a variety of compression techniques, and thereby preserve network bandwidth.
- the conversion module 120 will simply discard Internet content which either cannot be reproduced on the data processing device 110 , or which the user has indicated that he/she does not want to be reproduced on the wireless device. For example, a user may indicate that he/she does not want sounds to be generated on the data processing device 110 or that he/she does not want advertisements transmitted to the data processing device 110 . The conversion module 120 will then remove any sounds or advertisements embedded in the requested Web page (or other requested Internet content). Because HTML rendering and other advanced processing of Internet content/data is offloaded to the service 100 as described above, the data processing device 110 can be manufactured using a relatively low power microprocessor or microcontroller, thereby lowering the cost of manufacture and/or the energy consumed by the device 110 .
- the formatted page/object may be stored locally on a cache 125 maintained at the service 100 .
- the conversion module 120 may simply read the previously-generated code from the local cache 125 (i.e., it will no longer need to retrieve the content from remote locations to reconstruct the code).
- FIG. 3 One embodiment of a system for prioritizing data transports (e.g., socket connections) is illustrated generally in FIG. 3 .
- Two applications 390 and 391 executed on the data processing device 110 are shown communicating with two service modules 392 and 393 , respectively, executed on the service 110 .
- One socket connection represented by sockets 310 and 312 in transport layers 305 and 306 , respectively, provides for reliable data communication between application 390 and service 393 .
- a socket connection supported by sockets 311 and 313 provides for reliable data communication between application 391 and service 392 .
- the transport layers 305 and 306 provide all, or a subset of, the standard TCP transport functions.
- the embodiment illustrated in FIG. 3 includes socket prioritization logic 330 and 331 which prioritizes socket connections based on a one or more characteristics of the applications for which they are generated. For example, sockets for interactive applications such as Web browsing and instant messaging may be assigned relatively high priorities whereas sockets for non-interactive applications such as automated software upgrades may be assigned relatively low priorities. By prioritizing sockets in this manner, background communication tasks such as automatic software upgrades may be conducted by the service 100 transparently to the end user.
- FIGS. 4 a , 4 b and 4 c Three embodiments of methods for prioritizing data transports are illustrated in FIGS. 4 a , 4 b and 4 c . These methods may be implemented by the specific system architecture illustrated in FIG. 3 , or by a different system architecture.
- FIGS. 4 a and 4 b illustrate methods in which sockets are prioritized as either “background” sockets or “foreground” sockets.
- “foreground” sockets are sockets generated for interactive applications (e.g., Web browsing, instant messaging,. . . etc) whereas “background” sockets are sockets generated for non-interactive (or less interactive) applications (e.g., software upgrades).
- a new background socket connection is initiated for a non-interactive application.
- a specified portion of the software or firmware on the data processing device may need to be upgraded by the service 100 .
- a background socket connection (e.g., sockets 311 , 313 ) may be established between an upgrade application on the device 110 (e.g., application 391 ) and an upgrade service module on the service 100 (e.g., service module 392 ).
- the socket prioritization logic 330 , 331 on the device 110 and/or the service 100 determines whether any foreground sockets are currently supporting interactive applications (e.g., application 390 ). If not, then at 430 , a background socket is generated for the non-interactive application with a specified maximum window size (‘m’).
- the maximum window size may be set to the maximum size supported by the transport layer 305 , 306 (e.g., 64 KB for standard TCP).
- the maximum window size may be limited to a smaller value (e.g., 8 KB) so that, if/when the user begins performing interactive functions on the data processing device 110 , the device can respond without an unreasonable delay (i.e., which might result if the device were required to wait until for a maximum-sized window to be received before initiating the foreground socket).
- a smaller value e.g. 8 KB
- the background socket may be generated with a relatively smaller maximum window size (‘n’).
- n is set to zero.
- the maximum window size may be set to a relatively small value (e.g., 2 KB).
- the maximum window size for that socket may be reset to zero periodically. For example, if the total bandwidth available to the data processing device is 32 KB/sec, to allocate 1 ⁇ 4 of the total bandwidth to a background socket, the socket prioritization logic 330 , 331 may set the maximum window size to 8 K once each second. When the 8 K has been transmitted successfully (presumably in less than 1 second), the socket prioritization logic 330 , 331 resets the maximum window size to zero until the beginning of the next second.
- This technique of precisely allocating a percentage of the overall bandwidth to a socket is illustrated graphically in FIG. 5 . This bandwidth allocation technique may be employed at the various stages described herein where the maximum window size of a socket is set to a particular value (e.g., at 420 in FIG. 4 a ).
- the socket prioritization logic 330 , 331 may monitor the foreground socket connections to determine whether the user is still working interactively on the device 110 . For example, in one embodiment, a foreground inactivity timer is reset to a threshold value (e.g., 30 seconds) each time the foreground socket is utilized (e.g., each time the user clicks on a new URL to a Web page). If the foreground socket is not utilized for the threshold period of time, determined at 425 , then the maximum window size of the background socket may be increased (e.g., and reset to zero periodically based on the percentage of bandwidth to be allocated, as described above).
- a foreground inactivity timer is reset to a threshold value (e.g., 30 seconds) each time the foreground socket is utilized (e.g., each time the user clicks on a new URL to a Web page). If the foreground socket is not utilized for the threshold period of time, determined at 425 , then the maximum window size of the background socket may be increased (
- the maximum window size is increased to ‘m’ if the inactivity threshold is reached (i.e., the value to which the maximum window size is set if no foreground sockets are initially detected). It should be noted, however, that the maximum window size may be increased to alternate values while still complying with the underlying principles of the invention. In one embodiment, the maximum window size may be increased incrementally over time, under the assumption that the longer the foreground socket is inactive, the less likely it is that the foreground socket will become active at any given point in time.
- FIG. 4 b illustrates a similar method for initiating a new foreground socket.
- the new foreground socket is initiated. If no background sockets exist, determined at 445 , then at 447 the foreground socket is generated using a specified window size (e.g., 32 KB, 64 KB, . . . etc). If, however, background sockets exist, then the socket prioritization logic 330 , 331 may reduce the bandwidth allocated to those sockets to free up bandwidth for the new foreground socket. Thus, at 450 , the maximum window size for the background socket is set to ‘n’ and periodically reset to zero (as described above) to free up bandwidth. Once again, if the foreground socket becomes inactive, determined at 455 , then the background socket window size may be reset to a larger value at 460 so that the background application can consume the additional, unused bandwidth.
- a specified window size e.g. 32 KB, 64 KB, . . . etc.
- sockets are not strictly classified as “background” or “foreground” sockets as described above. Rather, sockets may be assigned a relative priority value (e.g., between 1 and 4) based on the level of interactivity of the applications which they support (or based on other specified variables).
- FIG. 4 c One embodiment of a method for prioritizing socket connections in this manner is illustrated in FIG. 4 c .
- a new socket connection is initiated with a specified priority (‘x’).
- the socket prioritization logic 330 , 331 determines whether any other active sockets exist. If not, then the new socket is initiated in a typical manner, using a specified window size at 477 .
- the priorities of all of the socket connections are evaluated and, at 485 , the maximum window sizes are reallocated based on the relative priorities of the active sockets. For example, if three sockets exist having relative priorities of 1, 2 and 3 (with 1 being the highest priority and 3 being the lowest) then the socket with a priority of 1 may be allocated a larger window size than the socket with a priority of 2, and the socket with a priority of 2 may be allocated a larger window size than the socket with a priority of 4.
- the highest priority (1) socket may be allocated, for example, a 40 KB window
- the lowest priority (3) socket may be allocated an 8 KB window
- the socket with an intermediate priority (2) may be allocated a 16 KB window. If each socket is reset to zero each second as described above, then the 64 KB/sec bandwidth will be accurately divided among the sockets based on relative priority. In one embodiment, however, the highest priority socket may not be periodically reset to zero as described, so that it will be provided with the maximum available bandwidth.
- the window sizes for the remaining active sockets may be reallocated based on their relative priorities (as described above).
- Embodiments of the invention may include various steps as set forth above.
- the steps may be embodied in machine-executable instructions which cause a general-purpose or special-purpose processor to perform certain steps.
- these steps may be performed by specific hardware components that contain hardwired logic for performing the steps, or by any combination of programmed computer components and custom hardware components.
- Elements of the present invention may also be provided as a machine-readable medium for storing the machine-executable instructions.
- the machine-readable medium may include, but is not limited to, floppy diskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, propagation media or other type of media suitable for storing or transmitting electronic instructions.
- the present invention may be downloaded as a computer program which may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a client) by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection).
Abstract
Description
- 1. Field of the Invention
- This invention relates generally to the field of data processing systems. More particularly, the invention relates to a system and method for prioritizing data transports on a data processing device.
- 2. Description of the Related Art
- A typical layered network architecture is illustrated in
FIG. 1 . Each layer within the architecture performs a specific function to reliably transmit data from a source node 195 (e.g., a client computer) to a destination node 196 (e.g., a network server). For example, when anapplication 190 has data to transmit to anotherapplication 191, the data is processed, in succession by atransport layer 180, anetwork layer 170 and a data-link layer 160 before being transmitted over the actualphysical connection 165 between the two nodes. At thereceiving node 196, the data is then processed in reverse order, by the data-link layer 161, thenetwork payer 171, and thetransport layer 185 before being handed off to thereceiving application 191. - The descriptions below assume that the reader has at least a basic understanding of the functions of each of the network layers. For those interested, a detailed description of the network layers defined by the ISO Open Systems Interconnection model can be found in D
ILIP C. NAIK , INTERNET STANDARDS AND PROTOCOLS (1998) (see, e.g.,Chapter 1, pages 3-11). - The well known TCP/IP protocol (“Transmission Control Protocol/Internet Protocol”) operates at the transport and network layers, respectively. The TCP transport layer is responsible for ensuring that all data associated with a particular data transmission arrives reliably and in the correct order at its destination. Specifically, in order to ensure reliable data transmission, a virtual connection 187 (also referred to herein as a “socket connection”) is established between a
TCP socket 182 opened at thedestination transport layer 185 and aTCP socket 181 opened at thesource transport layer 180. - The
TCP sockets source node 195 can send before it receives an acknowledgment back from the receiving node 196 (i.e., indicating that it has successfully received all or a portion of the data). - For example if a pair of
nodes socket 181 can only send 64 KB of data and then it must stop and wait for an acknowledgment from thereceiving socket 182 that some or all of the data has been received. If the receivingsocket 182 acknowledges that all of the data has been received then the transmittingsocket 181 is free to transmit another 64 KB. If, however, the transmittingsocket 181 receives an acknowledgment from the receiver that it only received the first 32 KB (which could happen, for example, if the second 32 KB was still in transit or was lost), then the transmittingsocket 181 will only send another 32 KB, since it cannot have more than 64 KB of unacknowledged data outstanding (i.e., the second 32 KB of data plus the third). - Thus, the TCP window throttles the transmission speed based on how quickly the receiving application can process it. The TCP window is typically defined by a 16-bit TCP header field. As such, the largest window that can be used for a standard TCP connection is 216 KB (64 KB).
- A client may concurrently have several different socket connections open with a server or client, or with several different servers/clients. Each socket connection may not be utilized in the same manner, however. For example, the user may be interactively browsing web pages via one socket connection while receiving an automated software upgrade or e-mail message over another socket connection. This may result in a degradation of the interactive user experience, particularly on networks which allocate a relatively small amount of bandwidth per device (e.g., wireless networks such as Cellular Digital Packet Data and ARDIS networks). Under these circumstances, it would be useful to have the ability to prioritize the socket connections such that the interactive connections are provided with a relatively larger amount of bandwidth than the non-interactive connections.
- A system is described for allocating bandwidth comprising: a transport layer to support a first socket connection for a first application and a second socket connection for a second application; and a socket prioritization module to allocate relatively more bandwidth to the first socket connection relative to the second socket connection, wherein allocation of bandwidth is based on one or more characteristics of the first application and/or the second application.
- A better understanding of the present invention can be obtained from the following detailed description in conjunction with the following drawings, in which:
-
FIG. 1 illustrates an exemplary network architecture with a plurality of network layers. -
FIG. 2 illustrates an exemplary data processing device communicating with an exemplary data service. -
FIG. 3 illustrates one embodiment of a system for prioritizing socket connections. -
FIG. 4 a illustrates one embodiment of a method for allocating bandwidth for new background sockets. -
FIG. 4 b illustrates one embodiment of a method for allocating bandwidth for new foreground sockets. -
FIG. 4 c illustrates one embodiment of a method for allocating bandwidth based on relative socket priority. -
FIG. 5 illustrates a technique for allocating bandwidth to a socket by setting and resetting transport window size. - Described below is a system and method for processing code words. Throughout the description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without some of these specific details. In other instances, well-known structures and devices are shown in block diagram form to avoid obscuring the underlying principles of the present invention.
- One embodiment of the invention is employed on a wireless data processing device which operates in conjunction with a data processing service such as that described in co-pending application entitled N
ETWORK PORTAL SYSTEM , APPARATUS AND METHOD , Ser. No. 09/714,897, Filed Nov. 15, 2000 (hereinafter “Network Portal Application”), which is assigned to the assignee of the present application and which is incorporated herein by reference. Certain aspects of this data processing device and data processing service will now be described, followed by a detailed description of an advanced system and method for processing data object identification codes. As an initial matter, however, it should be noted that the underlying principles of the invention may be implemented on virtually any type of network and between virtually any types of network nodes (e.g., networked desktop computers, networked personal digital assistants, . . . etc). -
FIG. 2 illustrates one embodiment of adata processing service 100 comprised of one or more servers. The data processing service provides a portal through whichdata processing devices 110 may access content (e.g., Web pages, multimedia content, e-mail, instant messages . . . etc) fromexternal Internet sites 130. In one embodiment, theservice 100 converts standard applications and data into a format which each wirelessdata processing device 110 can properly interpret. Thus, as illustrated inFIG. 2 , one embodiment of theservice 100 includes acontent conversion module 120 for processing requests forInternet content 140. More particularly, theservice 100 acts as a proxy for thedata processing device 110, forwardingInternet requests appropriate Internet site 130 on behalf of thedata processing device 110, receiving responses from theInternet site 130 in a standard Internet format (e.g., Web pages with embedded audio/video and graphical content, e-mail messages with attachments, . . . etc), and converting thestandard Internet responses 142 into aformat 143 which thedata processing device 110 can process (e.g., bytecodes as described in the Network Portal Application). - For example, the
conversion module 120 may include a hypertext markup language (“HTML”) rendering module (not shown) for interpreting HTML code and downloading any embedded content in the HTML code (e.g., graphics, video, sound, . . . etc) to theservice 100. Theconversion module 120 may then combine the HTML code and embedded content and generate a set of bytecodes for accurately reproducing the requested content on thedata processing device 110. As described above, in one embodiment, the bytecodes may be Java bytecodes/applets. However, theconversion module 120 may generate various other types of interpreted and/or non-interpreted code, depending on the particular type ofdata processing device 110 being used (e.g., one with an interpreter module or one without). - Because one embodiment of the
service 100 maintains an intimate knowledge of the capabilities/configuration of each data processing device 110 (e.g., screen size, graphics/audio capabilities, available memory, processing power, user preferences, . . . etc) it can reconstruct the requested Internet content accurately, while at the same time minimizing the bandwidth required to transmit the content to thedevice 110. For example, theconversion module 120 may perform pre-scaling and color depth adjustments to the requested content so that it will be rendered properly within the data processing device's 110's display. In making these calculations, the conversion may factor in the memory and processing power available on thedata processing device 110. In addition, theconversion module 120 may compress the requested content using a variety of compression techniques, and thereby preserve network bandwidth. - In one embodiment, the
conversion module 120 will simply discard Internet content which either cannot be reproduced on thedata processing device 110, or which the user has indicated that he/she does not want to be reproduced on the wireless device. For example, a user may indicate that he/she does not want sounds to be generated on thedata processing device 110 or that he/she does not want advertisements transmitted to thedata processing device 110. Theconversion module 120 will then remove any sounds or advertisements embedded in the requested Web page (or other requested Internet content). Because HTML rendering and other advanced processing of Internet content/data is offloaded to theservice 100 as described above, thedata processing device 110 can be manufactured using a relatively low power microprocessor or microcontroller, thereby lowering the cost of manufacture and/or the energy consumed by thedevice 110. - In one embodiment, when a particular Web page or other Internet object has been converted into a format suitable for rendering/execution on the
data processing device 110 the formatted page/object may be stored locally on acache 125 maintained at theservice 100. The next time the content is requested, theconversion module 120 may simply read the previously-generated code from the local cache 125 (i.e., it will no longer need to retrieve the content from remote locations to reconstruct the code). - One embodiment of a system for prioritizing data transports (e.g., socket connections) is illustrated generally in
FIG. 3 . Twoapplications data processing device 110 are shown communicating with twoservice modules service 110. One socket connection, represented bysockets transport layers application 390 andservice 393. Similarly, a socket connection supported bysockets application 391 andservice 392. - In one embodiment, the transport layers 305 and 306 provide all, or a subset of, the standard TCP transport functions. In addition, the embodiment illustrated in
FIG. 3 includessocket prioritization logic 330 and 331 which prioritizes socket connections based on a one or more characteristics of the applications for which they are generated. For example, sockets for interactive applications such as Web browsing and instant messaging may be assigned relatively high priorities whereas sockets for non-interactive applications such as automated software upgrades may be assigned relatively low priorities. By prioritizing sockets in this manner, background communication tasks such as automatic software upgrades may be conducted by theservice 100 transparently to the end user. - Three embodiments of methods for prioritizing data transports are illustrated in
FIGS. 4 a, 4 b and 4 c. These methods may be implemented by the specific system architecture illustrated inFIG. 3 , or by a different system architecture.FIGS. 4 a and 4 b illustrate methods in which sockets are prioritized as either “background” sockets or “foreground” sockets. As used herein, “foreground” sockets are sockets generated for interactive applications (e.g., Web browsing, instant messaging,. . . etc) whereas “background” sockets are sockets generated for non-interactive (or less interactive) applications (e.g., software upgrades). - Referring to
FIG. 4 a, at 405, a new background socket connection is initiated for a non-interactive application. For example, a specified portion of the software or firmware on the data processing device may need to be upgraded by theservice 100. In this case, a background socket connection (e.g.,sockets 311, 313) may be established between an upgrade application on the device 110 (e.g., application 391) and an upgrade service module on the service 100 (e.g., service module 392). - At 410, the
socket prioritization logic 330, 331 on thedevice 110 and/or theservice 100, respectively, determines whether any foreground sockets are currently supporting interactive applications (e.g., application 390). If not, then at 430, a background socket is generated for the non-interactive application with a specified maximum window size (‘m’). In one embodiment, the maximum window size may be set to the maximum size supported by thetransport layer 305, 306 (e.g., 64 KB for standard TCP). In another embodiment, however, the maximum window size may be limited to a smaller value (e.g., 8 KB) so that, if/when the user begins performing interactive functions on thedata processing device 110, the device can respond without an unreasonable delay (i.e., which might result if the device were required to wait until for a maximum-sized window to be received before initiating the foreground socket). - At 410, if the
socket prioritization logic 330, 331 determines that foreground sockets exist, then at 420, the background socket may be generated with a relatively smaller maximum window size (‘n’). In one embodiment, the maximum window size n is set to zero. However, in another embodiment, the maximum window size may be set to a relatively small value (e.g., 2 KB). - Moreover, in one embodiment, in order to allocate a specific percentage of the overall bandwidth to the background socket, the maximum window size for that socket may be reset to zero periodically. For example, if the total bandwidth available to the data processing device is 32 KB/sec, to allocate ¼ of the total bandwidth to a background socket, the
socket prioritization logic 330, 331 may set the maximum window size to 8K once each second. When the 8 K has been transmitted successfully (presumably in less than 1 second), thesocket prioritization logic 330, 331 resets the maximum window size to zero until the beginning of the next second. This technique of precisely allocating a percentage of the overall bandwidth to a socket is illustrated graphically inFIG. 5 . This bandwidth allocation technique may be employed at the various stages described herein where the maximum window size of a socket is set to a particular value (e.g., at 420 inFIG. 4 a). - The
socket prioritization logic 330, 331 may monitor the foreground socket connections to determine whether the user is still working interactively on thedevice 110. For example, in one embodiment, a foreground inactivity timer is reset to a threshold value (e.g., 30 seconds) each time the foreground socket is utilized (e.g., each time the user clicks on a new URL to a Web page). If the foreground socket is not utilized for the threshold period of time, determined at 425, then the maximum window size of the background socket may be increased (e.g., and reset to zero periodically based on the percentage of bandwidth to be allocated, as described above). - In the embodiment illustrated in
FIG. 4 a, the maximum window size is increased to ‘m’ if the inactivity threshold is reached (i.e., the value to which the maximum window size is set if no foreground sockets are initially detected). It should be noted, however, that the maximum window size may be increased to alternate values while still complying with the underlying principles of the invention. In one embodiment, the maximum window size may be increased incrementally over time, under the assumption that the longer the foreground socket is inactive, the less likely it is that the foreground socket will become active at any given point in time. -
FIG. 4 b illustrates a similar method for initiating a new foreground socket. At 440, the new foreground socket is initiated. If no background sockets exist, determined at 445, then at 447 the foreground socket is generated using a specified window size (e.g., 32 KB, 64 KB, . . . etc). If, however, background sockets exist, then thesocket prioritization logic 330, 331 may reduce the bandwidth allocated to those sockets to free up bandwidth for the new foreground socket. Thus, at 450, the maximum window size for the background socket is set to ‘n’ and periodically reset to zero (as described above) to free up bandwidth. Once again, if the foreground socket becomes inactive, determined at 455, then the background socket window size may be reset to a larger value at 460 so that the background application can consume the additional, unused bandwidth. - In one embodiment of the invention, sockets are not strictly classified as “background” or “foreground” sockets as described above. Rather, sockets may be assigned a relative priority value (e.g., between 1 and 4) based on the level of interactivity of the applications which they support (or based on other specified variables).
- One embodiment of a method for prioritizing socket connections in this manner is illustrated in
FIG. 4 c. At 470 a new socket connection is initiated with a specified priority (‘x’). At 475, thesocket prioritization logic 330, 331 determines whether any other active sockets exist. If not, then the new socket is initiated in a typical manner, using a specified window size at 477. - If, however, active socket connections exist between the
device 110 and the service 100 (or a different client/server) then, at 480, the priorities of all of the socket connections are evaluated and, at 485, the maximum window sizes are reallocated based on the relative priorities of the active sockets. For example, if three sockets exist having relative priorities of 1, 2 and 3 (with 1 being the highest priority and 3 being the lowest) then the socket with a priority of 1 may be allocated a larger window size than the socket with a priority of 2, and the socket with a priority of 2 may be allocated a larger window size than the socket with a priority of 4. If the maximum available bandwidth is 64 KB/sec, then the highest priority (1) socket may be allocated, for example, a 40 KB window, the lowest priority (3) socket may be allocated an 8 KB window and the socket with an intermediate priority (2) may be allocated a 16 KB window. If each socket is reset to zero each second as described above, then the 64 KB/sec bandwidth will be accurately divided among the sockets based on relative priority. In one embodiment, however, the highest priority socket may not be periodically reset to zero as described, so that it will be provided with the maximum available bandwidth. - Once again, if a particular socket becomes inactive for a predetermined period of time (e.g., because a user stops interactively working on an application), determined at 490, then, at 495, the window sizes for the remaining active sockets may be reallocated based on their relative priorities (as described above).
- Embodiments of the invention may include various steps as set forth above. The steps may be embodied in machine-executable instructions which cause a general-purpose or special-purpose processor to perform certain steps. Alternatively, these steps may be performed by specific hardware components that contain hardwired logic for performing the steps, or by any combination of programmed computer components and custom hardware components.
- Elements of the present invention may also be provided as a machine-readable medium for storing the machine-executable instructions. The machine-readable medium may include, but is not limited to, floppy diskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, propagation media or other type of media suitable for storing or transmitting electronic instructions. For example, the present invention may be downloaded as a computer program which may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a client) by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection).
- Throughout the foregoing description, for the purposes of explanation, numerous specific details were set forth in order to provide a thorough understanding of the invention. It will be apparent, however, to one skilled in the art that the invention may be practiced without some of these specific details. For example, while embodiments of the invention described above operate at the TCP transport layer, the underlying principles of the invention are not limited to any particular data transport or any particular network layer. Moreover, while described above in the context of a
data processing device 110 communicating with adata service 100, the underlying principles of the invention may be employed between virtually any two nodes communicating over a data network. Accordingly, the scope and spirit of the invention should be judged in terms of the claims which follow.
Claims (20)
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/260,063 US7069326B1 (en) | 2002-09-27 | 2002-09-27 | System and method for efficiently managing data transports |
AU2003279732A AU2003279732A1 (en) | 2002-09-27 | 2003-09-29 | System and a method for efficiently managing data transports |
PCT/US2003/031025 WO2004029779A2 (en) | 2002-09-27 | 2003-09-29 | System and a method for efficiently managing data transports |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/260,063 US7069326B1 (en) | 2002-09-27 | 2002-09-27 | System and method for efficiently managing data transports |
Publications (2)
Publication Number | Publication Date |
---|---|
US7069326B1 US7069326B1 (en) | 2006-06-27 |
US20060143294A1 true US20060143294A1 (en) | 2006-06-29 |
Family
ID=32041798
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/260,063 Expired - Fee Related US7069326B1 (en) | 2002-09-27 | 2002-09-27 | System and method for efficiently managing data transports |
Country Status (3)
Country | Link |
---|---|
US (1) | US7069326B1 (en) |
AU (1) | AU2003279732A1 (en) |
WO (1) | WO2004029779A2 (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060056300A1 (en) * | 2003-07-15 | 2006-03-16 | Yoshio Tamura | Bandwidth control apparatus |
US20070091900A1 (en) * | 2005-10-20 | 2007-04-26 | Nokia Corporation | Prioritized control packet delivery for transmission control protocol (TCP) |
US20150163070A1 (en) * | 2004-11-30 | 2015-06-11 | Iii Holdings 1, Llc | Method and apparatus for managing an interactive network session |
US20160188362A1 (en) * | 2014-12-30 | 2016-06-30 | Konan Technology Inc. | Library apparatus for real-time process, and transmitting and receiving method thereof |
US20170126840A1 (en) * | 2010-11-01 | 2017-05-04 | Seven Networks, Llc | Optimization of resource polling intervals to satisfy mobile device requests |
US10389737B2 (en) | 2013-10-02 | 2019-08-20 | Hoosier Energy Rural Electric Cooperative, Inc. | Computerized system for complying with certain critical infrastructure protection requirements |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3733943B2 (en) * | 2002-10-16 | 2006-01-11 | 日本電気株式会社 | Data transfer rate arbitration system and data transfer rate arbitration method used therefor |
US20040103193A1 (en) * | 2002-11-08 | 2004-05-27 | Pandya Suketu J. | Response time and resource consumption management in a distributed network environment |
US7733870B1 (en) * | 2004-09-10 | 2010-06-08 | Verizon Services Corp. & Verizon Services Organization Inc. | Bandwidth-on-demand systems and methods |
US7796510B2 (en) * | 2007-03-12 | 2010-09-14 | Citrix Systems, Inc. | Systems and methods for providing virtual fair queueing of network traffic |
US7760642B2 (en) * | 2007-03-12 | 2010-07-20 | Citrix Systems, Inc. | Systems and methods for providing quality of service precedence in TCP congestion control |
US8908700B2 (en) * | 2007-09-07 | 2014-12-09 | Citrix Systems, Inc. | Systems and methods for bridging a WAN accelerator with a security gateway |
JP4586873B2 (en) * | 2008-03-28 | 2010-11-24 | セイコーエプソン株式会社 | Socket management apparatus and method |
US9327193B2 (en) * | 2008-06-27 | 2016-05-03 | Microsoft Technology Licensing, Llc | Dynamic selection of voice quality over a wireless system |
WO2010042580A1 (en) * | 2008-10-08 | 2010-04-15 | Citrix Systems, Inc. | Systems and methods for allocating bandwidth by an intermediary for flow control |
US20100306384A1 (en) * | 2009-06-01 | 2010-12-02 | Keith Hayes | Multi-directional secure common data transport system |
GB2478336A (en) * | 2010-03-04 | 2011-09-07 | Nec Corp | Bandwidth control system |
US9350644B2 (en) * | 2012-04-13 | 2016-05-24 | Zscaler. Inc. | Secure and lightweight traffic forwarding systems and methods to cloud based network security systems |
KR102294684B1 (en) * | 2017-06-08 | 2021-08-26 | 텔레폰악티에볼라겟엘엠에릭슨(펍) | A method and network node for providing coordinated flow control for a group of sockets in a network |
Citations (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4237450A (en) * | 1978-11-13 | 1980-12-02 | Canez Antonio R | Appliance theft alarm |
US5159592A (en) * | 1990-10-29 | 1992-10-27 | International Business Machines Corporation | Network address management for a wired network supporting wireless communication to a plurality of mobile users |
US5224060A (en) * | 1992-07-29 | 1993-06-29 | Ma Hsi Kuang | Mobile computer with pen base/keyboard input modes |
US5268817A (en) * | 1990-04-27 | 1993-12-07 | Kabushiki Kaisha Toshiba | Portable computer with keyboard and having display with coordinate input tablet rotatably mounted to face either toward or away from keyboard when closed over keyboard |
US5546447A (en) * | 1994-06-29 | 1996-08-13 | Intel Corporation | Displaying caller identification information in a computer system |
US5548477A (en) * | 1995-01-27 | 1996-08-20 | Khyber Technologies Corporation | Combination keyboard and cover for a handheld computer |
US5548478A (en) * | 1994-07-25 | 1996-08-20 | Khyber Technologies Corporation | Portable computing device having an adjustable hinge |
US5559800A (en) * | 1994-01-19 | 1996-09-24 | Research In Motion Limited | Remote control of gateway functions in a wireless data communication network |
US5579472A (en) * | 1994-11-09 | 1996-11-26 | Novalink Technologies, Inc. | Group-oriented communications user interface |
US5594910A (en) * | 1988-07-15 | 1997-01-14 | Ibm Corp. | Interactive computer network and method of operation |
US5715387A (en) * | 1995-02-10 | 1998-02-03 | Research In Motion Limited | Method and system for loading and confirming correct operation of an application program in a target system |
US5727159A (en) * | 1996-04-10 | 1998-03-10 | Kikinis; Dan | System in which a Proxy-Server translates information received from the Internet into a form/format readily usable by low power portable computers |
US5727202A (en) * | 1995-10-18 | 1998-03-10 | Palm Computing, Inc. | Method and apparatus for synchronizing information on two different computer systems |
US5748084A (en) * | 1996-11-18 | 1998-05-05 | Isikoff; Jeremy M. | Device security system |
US5778176A (en) * | 1991-06-21 | 1998-07-07 | International Business Machines Corporation | System for automatically transferring access authorization of third node to first node even through first node is not previously authorized to access function of second node in computer network |
US5790974A (en) * | 1996-04-29 | 1998-08-04 | Sun Microsystems, Inc. | Portable calendaring device having perceptual agent managing calendar entries |
US5802312A (en) * | 1994-09-27 | 1998-09-01 | Research In Motion Limited | System for transmitting data files between computers in a wireless environment utilizing a file transfer agent executing on host system |
US5816620A (en) * | 1997-01-13 | 1998-10-06 | Buell; Robert | Key locator |
US5900848A (en) * | 1996-05-17 | 1999-05-04 | Sharp Kabushiki Kaisha | Information processing apparatus |
US5915095A (en) * | 1995-08-08 | 1999-06-22 | Ncr Corporation | Method and apparatus for balancing processing requests among a plurality of servers based on measurable characteristics off network node and common application |
US5949408A (en) * | 1995-09-28 | 1999-09-07 | Hewlett-Packard Company | Dual orientation display handheld computer devices |
US5961590A (en) * | 1997-04-11 | 1999-10-05 | Roampage, Inc. | System and method for synchronizing electronic mail between a client site and a central site |
US5964830A (en) * | 1995-08-22 | 1999-10-12 | Durrett; Charles M. | User portal device for the world wide web to communicate with a website server |
US5969678A (en) * | 1995-06-06 | 1999-10-19 | Wayport, Inc. | System for hybrid wired and wireless geographic-based communications service |
US5987609A (en) * | 1996-10-03 | 1999-11-16 | Kabushiki Kaisha Toshiba | System for remotely securing/locking a stolen wireless device via an Email message |
US6023708A (en) * | 1997-05-29 | 2000-02-08 | Visto Corporation | System and method for using a global translator to synchronize workspace elements across a network |
US6035339A (en) * | 1997-03-13 | 2000-03-07 | At&T Corporation | Network information delivery system for delivering information based on end user terminal requirements |
US6076093A (en) * | 1997-11-12 | 2000-06-13 | Genesys Telecommunications Laboratories, Inc. | Real-time interactive directory |
US6076109A (en) * | 1996-04-10 | 2000-06-13 | Lextron, Systems, Inc. | Simplified-file hyper text protocol |
US6081708A (en) * | 1997-03-06 | 2000-06-27 | Alcatel | Multi-network communication system for organizations having digital cellular radio network terminals |
US6087937A (en) * | 1995-02-25 | 2000-07-11 | Accupage Limited | Security device |
US6151677A (en) * | 1998-10-06 | 2000-11-21 | L-3 Communications Corporation | Programmable telecommunications security module for key encryption adaptable for tokenless use |
US6157935A (en) * | 1996-12-17 | 2000-12-05 | Tran; Bao Q. | Remote data access and management system |
US6166734A (en) * | 1996-10-01 | 2000-12-26 | Diamond Multimedia Systems, Inc. | Portable interactive graphics display tablet and communications system |
US6167441A (en) * | 1997-11-21 | 2000-12-26 | International Business Machines Corporation | Customization of web pages based on requester type |
US6199099B1 (en) * | 1999-03-05 | 2001-03-06 | Ac Properties B.V. | System, method and article of manufacture for a mobile communication network utilizing a distributed communication network |
US6266400B1 (en) * | 1997-10-01 | 2001-07-24 | Unisys Pulsepoint Communications | Method for customizing and managing information in a voice mail system to facilitate call handling |
US6282435B1 (en) * | 1997-09-26 | 2001-08-28 | Sun Microsytems Inc. | Graphical user interface for a portable telephone |
US6286063B1 (en) * | 1998-06-08 | 2001-09-04 | Sonigistix Corporation | Microprocessor-controlled broadcast receiver embedded in an external peripheral with digital communications interface for bi-directional communication with a computer remotely located |
US20010023445A1 (en) * | 2000-03-15 | 2001-09-20 | Telefonaktiebolaget Lm Ericsson (Pub1) | Method and arrangement for control of non real-time application flows in a network communications system |
US6330618B1 (en) * | 1997-01-30 | 2001-12-11 | Palm, Inc. | Method and apparatus for synchronizing a portable computer system with a desktop computer system |
US6336137B1 (en) * | 2000-03-31 | 2002-01-01 | Siebel Systems, Inc. | Web client-server system and method for incompatible page markup and presentation languages |
US20020010757A1 (en) * | 1999-12-03 | 2002-01-24 | Joel Granik | Method and apparatus for replacement of on-line advertisements |
US20020007545A1 (en) * | 2000-05-25 | 2002-01-24 | Gaetano Raccosta | Machine and method for automatically applying snap fasteners on a support |
US6370687B1 (en) * | 1999-01-21 | 2002-04-09 | Fujitsu Limited | Network computer system and substitute compile server |
US6396482B1 (en) * | 1998-06-26 | 2002-05-28 | Research In Motion Limited | Hand-held electronic device with a keyboard optimized for use with the thumbs |
US20020075305A1 (en) * | 2000-12-18 | 2002-06-20 | Beaton Brian F. | Graphical user interface for a virtual team environment |
US6418310B1 (en) * | 1999-08-05 | 2002-07-09 | Ericsson Inc. | Wireless subscriber terminal using java control code |
US6433777B1 (en) * | 1999-09-29 | 2002-08-13 | Gateway, Inc. | Apparatus for extending a cursor control stick |
US6438601B1 (en) * | 1999-10-19 | 2002-08-20 | Worldcom, Inc. | Method and system for using caller pays service for single use and short term access to internet subscription services |
US6446004B1 (en) * | 2001-02-28 | 2002-09-03 | International Business Machines Corporation | System and method for implementing proximity or location driven activities |
US20020150048A1 (en) * | 2001-04-12 | 2002-10-17 | Sungwon Ha | Data transport acceleration and management within a network communication system |
US6518533B1 (en) * | 2001-11-01 | 2003-02-11 | Ltv Steel Company, Inc. | High strength steel tubing |
US6526274B1 (en) * | 1999-10-25 | 2003-02-25 | Comdial Corporation | Method, system, and computer program product for extending the functionality of a personal information manager to telephone system interactions |
US6542730B1 (en) * | 1998-11-06 | 2003-04-01 | Aeris.Net | System and method for disabling a cellular phone |
US6622175B1 (en) * | 1999-11-30 | 2003-09-16 | Recursion Software, Inc. | System and method for communications in a distributed processing environment |
US6643781B1 (en) * | 1999-05-14 | 2003-11-04 | Sun Microsystems, Inc. | Method and apparatus for rendering stolen computing devices inoperable |
US6662023B1 (en) * | 2000-07-06 | 2003-12-09 | Nokia Mobile Phones Ltd. | Method and apparatus for controlling and securing mobile phones that are lost, stolen or misused |
US20040010585A1 (en) * | 2002-07-12 | 2004-01-15 | Jones Jerome Kemple | System and method for managing bandwidth utilization |
US6687497B1 (en) * | 2000-02-11 | 2004-02-03 | Sony Electronics Inc. | Method, system, and structure for disabling a communication device during the occurrence of one or more predetermined conditions |
US6742027B1 (en) * | 1999-02-24 | 2004-05-25 | International Business Machines Corporation | Data processing system and method for permitting a server to remotely disable a client computer system's input device |
US6968379B2 (en) * | 1997-05-30 | 2005-11-22 | Sun Microsystems, Inc. | Latency-reducing bandwidth-prioritization for network servers and clients |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6014433B2 (en) | 1978-03-01 | 1985-04-13 | オリンパス光学工業株式会社 | Tape recorder with calculator |
US5608446A (en) * | 1994-03-31 | 1997-03-04 | Lucent Technologies Inc. | Apparatus and method for combining high bandwidth and low bandwidth data transfer |
US5913040A (en) * | 1995-08-22 | 1999-06-15 | Backweb Ltd. | Method and apparatus for transmitting and displaying information between a remote network and a local computer |
US5983261A (en) * | 1996-07-01 | 1999-11-09 | Apple Computer, Inc. | Method and apparatus for allocating bandwidth in teleconferencing applications using bandwidth control |
US6490251B2 (en) * | 1997-04-14 | 2002-12-03 | Nortel Networks Limited | Method and apparatus for communicating congestion information among different protocol layers between networks |
US6038601A (en) * | 1997-07-21 | 2000-03-14 | Tibco, Inc. | Method and apparatus for storing and delivering documents on the internet |
US6249530B1 (en) * | 1997-12-22 | 2001-06-19 | Sun Microsystems, Inc. | Network bandwidth control |
US6438101B1 (en) * | 1997-12-23 | 2002-08-20 | At&T Corp. | Method and apparatus for managing congestion within an internetwork using window adaptation |
JP3145083B2 (en) * | 1998-08-04 | 2001-03-12 | 松下電器産業株式会社 | Transmission system, bandwidth management device, and bandwidth management method |
CA2249152C (en) * | 1998-09-30 | 2003-07-08 | Northern Telecom Limited | Apparatus for and method of managing bandwidth for a packet-based connection |
US6442529B1 (en) | 1998-11-17 | 2002-08-27 | Novaweb Technologies, Inc. | Methods and apparatus for delivering targeted information and advertising over the internet |
US6449255B1 (en) * | 1999-04-26 | 2002-09-10 | Cisco Technology, Inc. | Method and apparatus for managing packets using a real-time feedback signal |
EP1071024A3 (en) | 1999-07-23 | 2002-07-17 | Phone.Com Inc. | Method and apparatus for splitting markup flows into discrete screen displays |
US20020002625A1 (en) * | 2000-04-17 | 2002-01-03 | Mark Vange | System and method for reformatting data traffic |
-
2002
- 2002-09-27 US US10/260,063 patent/US7069326B1/en not_active Expired - Fee Related
-
2003
- 2003-09-29 WO PCT/US2003/031025 patent/WO2004029779A2/en not_active Application Discontinuation
- 2003-09-29 AU AU2003279732A patent/AU2003279732A1/en not_active Abandoned
Patent Citations (63)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4237450A (en) * | 1978-11-13 | 1980-12-02 | Canez Antonio R | Appliance theft alarm |
US5594910A (en) * | 1988-07-15 | 1997-01-14 | Ibm Corp. | Interactive computer network and method of operation |
US5268817A (en) * | 1990-04-27 | 1993-12-07 | Kabushiki Kaisha Toshiba | Portable computer with keyboard and having display with coordinate input tablet rotatably mounted to face either toward or away from keyboard when closed over keyboard |
US5159592A (en) * | 1990-10-29 | 1992-10-27 | International Business Machines Corporation | Network address management for a wired network supporting wireless communication to a plurality of mobile users |
US5778176A (en) * | 1991-06-21 | 1998-07-07 | International Business Machines Corporation | System for automatically transferring access authorization of third node to first node even through first node is not previously authorized to access function of second node in computer network |
US5224060A (en) * | 1992-07-29 | 1993-06-29 | Ma Hsi Kuang | Mobile computer with pen base/keyboard input modes |
US5559800A (en) * | 1994-01-19 | 1996-09-24 | Research In Motion Limited | Remote control of gateway functions in a wireless data communication network |
US5546447A (en) * | 1994-06-29 | 1996-08-13 | Intel Corporation | Displaying caller identification information in a computer system |
US5548478A (en) * | 1994-07-25 | 1996-08-20 | Khyber Technologies Corporation | Portable computing device having an adjustable hinge |
US5802312A (en) * | 1994-09-27 | 1998-09-01 | Research In Motion Limited | System for transmitting data files between computers in a wireless environment utilizing a file transfer agent executing on host system |
US5579472A (en) * | 1994-11-09 | 1996-11-26 | Novalink Technologies, Inc. | Group-oriented communications user interface |
US5548477A (en) * | 1995-01-27 | 1996-08-20 | Khyber Technologies Corporation | Combination keyboard and cover for a handheld computer |
US5638257A (en) * | 1995-01-27 | 1997-06-10 | Khyber Technologies Corporation | Combination keyboard and cover for a handheld computer |
US5715387A (en) * | 1995-02-10 | 1998-02-03 | Research In Motion Limited | Method and system for loading and confirming correct operation of an application program in a target system |
US6087937A (en) * | 1995-02-25 | 2000-07-11 | Accupage Limited | Security device |
US5969678A (en) * | 1995-06-06 | 1999-10-19 | Wayport, Inc. | System for hybrid wired and wireless geographic-based communications service |
US5915095A (en) * | 1995-08-08 | 1999-06-22 | Ncr Corporation | Method and apparatus for balancing processing requests among a plurality of servers based on measurable characteristics off network node and common application |
US5964830A (en) * | 1995-08-22 | 1999-10-12 | Durrett; Charles M. | User portal device for the world wide web to communicate with a website server |
US5949408A (en) * | 1995-09-28 | 1999-09-07 | Hewlett-Packard Company | Dual orientation display handheld computer devices |
US5727202A (en) * | 1995-10-18 | 1998-03-10 | Palm Computing, Inc. | Method and apparatus for synchronizing information on two different computer systems |
US5727159A (en) * | 1996-04-10 | 1998-03-10 | Kikinis; Dan | System in which a Proxy-Server translates information received from the Internet into a form/format readily usable by low power portable computers |
US6076109A (en) * | 1996-04-10 | 2000-06-13 | Lextron, Systems, Inc. | Simplified-file hyper text protocol |
US5790974A (en) * | 1996-04-29 | 1998-08-04 | Sun Microsystems, Inc. | Portable calendaring device having perceptual agent managing calendar entries |
US5900848A (en) * | 1996-05-17 | 1999-05-04 | Sharp Kabushiki Kaisha | Information processing apparatus |
US6166734A (en) * | 1996-10-01 | 2000-12-26 | Diamond Multimedia Systems, Inc. | Portable interactive graphics display tablet and communications system |
US5987609A (en) * | 1996-10-03 | 1999-11-16 | Kabushiki Kaisha Toshiba | System for remotely securing/locking a stolen wireless device via an Email message |
US5748084A (en) * | 1996-11-18 | 1998-05-05 | Isikoff; Jeremy M. | Device security system |
US6157935A (en) * | 1996-12-17 | 2000-12-05 | Tran; Bao Q. | Remote data access and management system |
US5816620A (en) * | 1997-01-13 | 1998-10-06 | Buell; Robert | Key locator |
US6330618B1 (en) * | 1997-01-30 | 2001-12-11 | Palm, Inc. | Method and apparatus for synchronizing a portable computer system with a desktop computer system |
US6081708A (en) * | 1997-03-06 | 2000-06-27 | Alcatel | Multi-network communication system for organizations having digital cellular radio network terminals |
US6035339A (en) * | 1997-03-13 | 2000-03-07 | At&T Corporation | Network information delivery system for delivering information based on end user terminal requirements |
US5961590A (en) * | 1997-04-11 | 1999-10-05 | Roampage, Inc. | System and method for synchronizing electronic mail between a client site and a central site |
US6023708A (en) * | 1997-05-29 | 2000-02-08 | Visto Corporation | System and method for using a global translator to synchronize workspace elements across a network |
US6968379B2 (en) * | 1997-05-30 | 2005-11-22 | Sun Microsystems, Inc. | Latency-reducing bandwidth-prioritization for network servers and clients |
US6282435B1 (en) * | 1997-09-26 | 2001-08-28 | Sun Microsytems Inc. | Graphical user interface for a portable telephone |
US6266400B1 (en) * | 1997-10-01 | 2001-07-24 | Unisys Pulsepoint Communications | Method for customizing and managing information in a voice mail system to facilitate call handling |
US6076093A (en) * | 1997-11-12 | 2000-06-13 | Genesys Telecommunications Laboratories, Inc. | Real-time interactive directory |
US6167441A (en) * | 1997-11-21 | 2000-12-26 | International Business Machines Corporation | Customization of web pages based on requester type |
US6286063B1 (en) * | 1998-06-08 | 2001-09-04 | Sonigistix Corporation | Microprocessor-controlled broadcast receiver embedded in an external peripheral with digital communications interface for bi-directional communication with a computer remotely located |
US6396482B1 (en) * | 1998-06-26 | 2002-05-28 | Research In Motion Limited | Hand-held electronic device with a keyboard optimized for use with the thumbs |
US6151677A (en) * | 1998-10-06 | 2000-11-21 | L-3 Communications Corporation | Programmable telecommunications security module for key encryption adaptable for tokenless use |
US6542730B1 (en) * | 1998-11-06 | 2003-04-01 | Aeris.Net | System and method for disabling a cellular phone |
US6370687B1 (en) * | 1999-01-21 | 2002-04-09 | Fujitsu Limited | Network computer system and substitute compile server |
US6742027B1 (en) * | 1999-02-24 | 2004-05-25 | International Business Machines Corporation | Data processing system and method for permitting a server to remotely disable a client computer system's input device |
US6199099B1 (en) * | 1999-03-05 | 2001-03-06 | Ac Properties B.V. | System, method and article of manufacture for a mobile communication network utilizing a distributed communication network |
US6643781B1 (en) * | 1999-05-14 | 2003-11-04 | Sun Microsystems, Inc. | Method and apparatus for rendering stolen computing devices inoperable |
US6418310B1 (en) * | 1999-08-05 | 2002-07-09 | Ericsson Inc. | Wireless subscriber terminal using java control code |
US6433777B1 (en) * | 1999-09-29 | 2002-08-13 | Gateway, Inc. | Apparatus for extending a cursor control stick |
US6438601B1 (en) * | 1999-10-19 | 2002-08-20 | Worldcom, Inc. | Method and system for using caller pays service for single use and short term access to internet subscription services |
US6526274B1 (en) * | 1999-10-25 | 2003-02-25 | Comdial Corporation | Method, system, and computer program product for extending the functionality of a personal information manager to telephone system interactions |
US6622175B1 (en) * | 1999-11-30 | 2003-09-16 | Recursion Software, Inc. | System and method for communications in a distributed processing environment |
US20020010757A1 (en) * | 1999-12-03 | 2002-01-24 | Joel Granik | Method and apparatus for replacement of on-line advertisements |
US6687497B1 (en) * | 2000-02-11 | 2004-02-03 | Sony Electronics Inc. | Method, system, and structure for disabling a communication device during the occurrence of one or more predetermined conditions |
US20010023445A1 (en) * | 2000-03-15 | 2001-09-20 | Telefonaktiebolaget Lm Ericsson (Pub1) | Method and arrangement for control of non real-time application flows in a network communications system |
US6336137B1 (en) * | 2000-03-31 | 2002-01-01 | Siebel Systems, Inc. | Web client-server system and method for incompatible page markup and presentation languages |
US20020007545A1 (en) * | 2000-05-25 | 2002-01-24 | Gaetano Raccosta | Machine and method for automatically applying snap fasteners on a support |
US6662023B1 (en) * | 2000-07-06 | 2003-12-09 | Nokia Mobile Phones Ltd. | Method and apparatus for controlling and securing mobile phones that are lost, stolen or misused |
US20020075305A1 (en) * | 2000-12-18 | 2002-06-20 | Beaton Brian F. | Graphical user interface for a virtual team environment |
US6446004B1 (en) * | 2001-02-28 | 2002-09-03 | International Business Machines Corporation | System and method for implementing proximity or location driven activities |
US20020150048A1 (en) * | 2001-04-12 | 2002-10-17 | Sungwon Ha | Data transport acceleration and management within a network communication system |
US6518533B1 (en) * | 2001-11-01 | 2003-02-11 | Ltv Steel Company, Inc. | High strength steel tubing |
US20040010585A1 (en) * | 2002-07-12 | 2004-01-15 | Jones Jerome Kemple | System and method for managing bandwidth utilization |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060056300A1 (en) * | 2003-07-15 | 2006-03-16 | Yoshio Tamura | Bandwidth control apparatus |
US20150163070A1 (en) * | 2004-11-30 | 2015-06-11 | Iii Holdings 1, Llc | Method and apparatus for managing an interactive network session |
US20070091900A1 (en) * | 2005-10-20 | 2007-04-26 | Nokia Corporation | Prioritized control packet delivery for transmission control protocol (TCP) |
US20170126840A1 (en) * | 2010-11-01 | 2017-05-04 | Seven Networks, Llc | Optimization of resource polling intervals to satisfy mobile device requests |
US10397367B2 (en) * | 2010-11-01 | 2019-08-27 | Seven Networks, Llc | Optimization of resource polling intervals to satisfy mobile device requests |
US10389737B2 (en) | 2013-10-02 | 2019-08-20 | Hoosier Energy Rural Electric Cooperative, Inc. | Computerized system for complying with certain critical infrastructure protection requirements |
US11115424B2 (en) | 2013-10-02 | 2021-09-07 | Hoosier Energy Rural Electric Cooperative, Inc. | Computerized system for complying with certain critical infrastructure protection requirements |
US11558400B2 (en) | 2013-10-02 | 2023-01-17 | Hoosier Energy Rural Electric Cooperative, Inc. | Computerized system for complying with certain critical infrastructure protection requirements |
US11799875B2 (en) | 2013-10-02 | 2023-10-24 | Hoosier Energy Rural Electric Cooperative, Inc. | Computerized system for complying with certain critical infrastructure protection requirements |
US20160188362A1 (en) * | 2014-12-30 | 2016-06-30 | Konan Technology Inc. | Library apparatus for real-time process, and transmitting and receiving method thereof |
Also Published As
Publication number | Publication date |
---|---|
WO2004029779A2 (en) | 2004-04-08 |
AU2003279732A1 (en) | 2004-04-19 |
US7069326B1 (en) | 2006-06-27 |
WO2004029779A3 (en) | 2004-05-27 |
AU2003279732A8 (en) | 2004-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7069326B1 (en) | System and method for efficiently managing data transports | |
US20030023745A1 (en) | Method and system for adaptively downloading data from a network device | |
US7346691B2 (en) | Connection management system and method | |
US6442651B2 (en) | Shared cache parsing and pre-fetch | |
US6038601A (en) | Method and apparatus for storing and delivering documents on the internet | |
US7480711B2 (en) | System and method for efficiently forwarding client requests in a TCP/IP computing environment | |
US6959318B1 (en) | Method of proxy-assisted predictive pre-fetching with transcoding | |
US6912588B1 (en) | System and method for managing client requests in client-server networks | |
US6101328A (en) | System for preventing multiple instances of the same dynamic executable module | |
US7464140B2 (en) | Method and system for dynamically determining web resource to be loaded and saving space | |
US20170026496A1 (en) | Enhanced computer networking via multi-connection object retrieval | |
US8238243B2 (en) | System and method for network optimization by managing low priority data transfers | |
US20040111516A1 (en) | Reduced wireless internet connect time | |
EP1701506B1 (en) | Method and system for transmission control protocol (TCP) traffic smoothing | |
US20020165973A1 (en) | Adaptive transport protocol | |
WO2006047133A2 (en) | System and method for predictive streaming | |
US9730037B2 (en) | Cellular data communication for mobile devices | |
EP3582116A1 (en) | Webpage loading method, webpage loading system, and server | |
US20030126244A1 (en) | Apparatus for scheduled service of network requests and a method therefor | |
US7864779B2 (en) | Internet service synchronization method for mobile communication terminal | |
US7636303B2 (en) | Packet receiving method of mobile terminal | |
US7516199B2 (en) | Storage device managing system, method and program | |
US5832232A (en) | Method and apparatus for providing user-based flow control in a network system | |
US20040010626A1 (en) | System and method of processing transactions off-line | |
Lim et al. | TPF: TCP Plugged file system for efficient data delivery over TCP |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: DANGER RESEARCH, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BUSH, JEFFREY;REEL/FRAME:013631/0844 Effective date: 20021218 |
|
AS | Assignment |
Owner name: DANGER, INC., CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:DANGER RESEARCH;REEL/FRAME:020478/0857 Effective date: 20010521 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: MICROSOFT CORPORATION, WASHINGTON Free format text: MERGER;ASSIGNOR:DANGER, INC.;REEL/FRAME:027039/0009 Effective date: 20110106 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034541/0477 Effective date: 20141014 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.) |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.) |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20180627 |