Network communication
Claim Score by NHIP
Abstract
Mobile devices are networked to servers using connections. The connections are monitored to select one or more connections as the active connection. Information from applications is aggregated and transmitted across the active connection in order to network the mobile devices to the servers.

Term
Term ended
Projected expiry passed 16 March 2021, 5.5 years ago.
- Priority and filed
- Published
- Projected expiry
- Today
30 claims: 5 independent, 25 dependent
- 1A method comprising:at a device, opening a first connection to a server;establishing an information exchange protocol for communicating on the first connection;at a device, opening a second connection to the server;selecting an active connection from connections including the second connection;and communicating information configured for the information exchange protocol using the active connection.
- 12Broadest claimClaim Score 92, very broad(NHIP)A method comprising:at a server, accepting connections from a device for communicating information configured by an information exchange protocol;detecting or selecting one or more of the connections of as an active connection;and communicating information configured by the information exchange protocol using the active connection.
- 19An apparatus comprising a processor and software configured to cause the processor to:open a first connection to a server;establish an information exchange protocol;open a second connection to a server;select an active connection from connections including the second connection;and communicate information configured for the information exchange protocol using the active connection.
- 23An article comprising a machine-readable medium that stores machine-executable instructions, the instructions causing a machine to:open a first connection to a server;establish an information exchange protocol;open a second connection to a server;select an active connection from the connections;and communicate information configured for the information exchange protocol using the active connection.
- 28A system comprising:a device, a server, and communication links, in which the device is configured to: open a first connection to the server using one of the communication links;establish an information exchange protocol;open a second connection to the server using another of the communication links;select an active connection from connections including the second connection;communicate information configured for the information exchange protocol using the active connection.
Independent claims5
60 paragraphs in 3 sections, as filed
BACKGROUND
[0001] This invention relates to network communication.
[0002] Mobile devices, such as laptop computers, mobile phones, and handheld digital assistants, for example, communicate on wireless networks to enable their users to work in multiple locations and while in transit, such as in homes, airports, airplanes, and public spaces. Typically, the mobile devices run applications that access a server on the Internet by communicating using a single “connection.”
DESCRIPTION OF DRAWINGS
[0003]FIG. 1 is a diagram of network connections between a mobile client and a home agent.
[0004]FIG. 2 is a schematic of a tunnel state machine.
[0005]FIG. 3 is a flow chart of a process for connecting a mobile client.
[0006]FIG. 4 is a schematic of a mobile device.
[0007]FIG. 5 is a schematic of a stack for providing information to an application.
[0008]FIG. 6 is a schematic of information processing units implemented by a mobile client.
[0009]FIG. 7 is a schematic of information processing units implemented by a home agent or server.
DETAILED DESCRIPTION
[0010] A seamless and robust information exchange protocol for connecting a device to a secure network can include two or more open connections. The connections may be wireless and may be selectively and efficiently used to enhance information transmission speed and reliability.
[0011] Referring to the example shown in FIG. 1, a mobile (or immobile) device <b>110</b> establishes four exemplary connections or tunnels with a home agent <b>160</b>. Examples of mobile devices include laptop computers, handheld computers (e.g., PalmPilots™, handheld digital assistants, key pads), pagers, mobile telephones (e.g., Wireless Application Protocol (WAP) enabled phones), Moving Picture Experts Group Audio Layer 3 (MP3) players, and game and/or entertainment stations. Examples of immobile devices include desktop computers, large appliances, and factory machines.
[0012] The terms “connection” and “tunnel” refer to a route for sending and/or receiving information. Information refers to both data (e.g., text, numeric, Boolean, addresses, graphical content, and the like) and commands (e.g., requests, instructions, queries and the like). The home agent can be a computer system (such as a desktop computer, a server, a server farm, or a mainframe).
[0013] Connection <b>114</b> is a wireless phone link (e.g., third generation wireless networks (3G), second-and-a-half generation wireless networks (2.5G), General Packet Radio Service (GPRS)), i-mode™ (NTT DoCoMo, Japan), Global System for Mobile Communications (GSM), Code Division Multiple Access (CDMA), or Time Division Multiple Access (TDMA)/Digital Advanced Mobile Phone Service (D-AMPS) wireless link). This connection can be a modem connection that is relayed to an Internet service provider that connects the mobile client <b>110</b> to the Internet <b>140</b>.
[0014] Connection <b>116</b> is a wireless connection to a local area network (LAN) <b>130</b> (e.g., a wireless LAN such as provided by wireless Ethernet, BlueTooth, the Institute of Electrical and Electronics Engineers (IEEE) 802.11a or 802.11b standard (IEEE std. 802.11-1999, published 1999), or Cellular Digital Packet Data (CDPD) connections). Information from this connection can optionally traverse a Foreign Network Address Translator (NAT)/Proxy <b>132</b> to connect from the intranet <b>130</b> to the Internet <b>140</b>.
[0015] Connection <b>118</b> is a wired network connection, e.g., to a corporate intranet <b>130</b>. Information from this connection also traverses the Foreign NAT/Proxy <b>132</b> to connect to the Internet <b>140</b>.
[0016] Connection <b>120</b> is a direct connection to the Internet <b>140</b>, e.g., a Digital Subscriber Line (DSL), Integrated Services Digital Network (ISDN), or cable modem connection. The Internet <b>140</b> directs the connections to the home agent <b>160</b> that is linked to the Internet by a corporate firewall <b>152</b>. The home agent <b>160</b> can also be linked to a second intranet <b>150</b>.
[0017] The mobile client <b>110</b> can be designed to flexibly use a variety of communication protocols (e.g., Transmission Control Protocol (TCP)/Internet Protocol (TCP/IP), User Datagram Protocol (UDP), Hypertext Transfer Protocol (HTTP), Simple Mail Transfer Protocol (SMTP), Post Office Protocol 3 (POP3), or other Internet protocols) for the purpose of communicating to the home agent <b>160</b>, e.g., on the intranet <b>150</b>. In some examples, the mobile client <b>110</b> is assigned an Internet Protocol (IP) address on the secure intranet <b>150</b>. Applications running on the mobile client <b>110</b> issue network calls using the assigned IP address, typically, using a proxy module on the home agent <b>160</b>. However, the connections between the mobile client <b>110</b> and the home agent <b>160</b> may require a different set of addresses. For example, the mobile client <b>110</b> may be a guest system having a guest IP address on a second intranet <b>130</b> or may be connected to the Internet <b>140</b> using a temporary Internet IP address, e.g., through a third party service provider. Addresses, such as the guest IP address and the temporary IP address, are invisible to applications running on the mobile client <b>110</b>, but are used, e.g., by the network interfaces or operating system, to connect to the home agent <b>160</b>.
[0018] The communication connections may use network address translation (NAT). NAT enables machines within a secure intranet to use a set of assigned IP addresses. NAT translates these assigned IP addresses to external IP addresses for communication with devices outside of the intranet. This protocol enhances network security and allows more efficient assignment of IP addresses within an intranet. Generally, the mobile client <b>110</b> will establish connections with the home agent through NAT, e.g., Foreign NAT/Proxy, <b>132</b>. NAT <b>132</b> forwards information, e.g., across a public or insecure network, to the home agent <b>160</b> that resides securely behind a firewall <b>152</b>. The home agent <b>160</b> processes the information from the mobile client <b>110</b>, e.g., decompresses and decrypts the information, to allow the mobile client <b>110</b> to function securely with the advantages of a direct connection to an intranet or virtual private network (VPN) <b>150</b>.
[0019] Referring to FIG. 2, each connection operates as a finite state machine. The connection can be disconnected <b>210</b>, connecting <b>220</b>, passive <b>230</b>, or active <b>240</b>. In the active state, a connection sends and receives information with the server. An active connection <b>240</b> is switched to passive <b>230</b> under certain circumstances, for example, if another connection is more efficient, secure, or economical. A user or system administrator may define parameters for such a switch. The system may monitor the active connection <b>240</b> and/or the passive connections <b>230</b> for one or more of the following parameters: signal strength, transmittal rate, latency, cost of transmittal, and connection integrity. Monitoring and switching of connections may be performed without the cognizance of the user.
[0020] An active connection <b>240</b> is switched to the disconnected state <b>210</b>, for example, in the event of a loss of connection integrity (e.g. an abrupt break or a security breach). A disconnected connection <b>210</b> is switched to connecting <b>220</b> when appropriate.
[0021] A connecting connection <b>220</b> is switched to passive <b>230</b> once it is established and properly initialized. A passive connection <b>230</b> is generally not used to send or receive information except as necessary to monitor or maintain its integrity. In particular, a passive connection <b>230</b> is not used to send or receive application information. The passive connection <b>230</b> may be used to send instructions for its own activation. For example, if there is an abrupt disconnection of the active connection <b>240</b>, either or both of the server <b>160</b> and the mobile client <b>110</b> can issue commands on a passive connection <b>230</b> indicating that it should be activated.
[0022] More than one connection may be active at a given time. Information is divided between such active connections <b>240</b>, e.g., in proportion to the transfer rate of the particular connection, its latency, its reliability and so forth. The use of multiple connections at one time increases overall information transfer rates.
[0023] Referring now also to FIG. 3, the mobile client <b>110</b> scans <b>310</b> available network interfaces checking for ones that permit connection to the home agent <b>160</b>. The connection process includes initializing communication protocols <b>320</b>. Typically, the steps included in process <b>320</b> are only required for the initial connection <b>312</b>. Thus, adding additional passive connections <b>230</b> and switching among active connections <b>240</b> are rapid and efficient.
[0024] To initialize a connection <b>320</b>, network addressing <b>322</b> is initialized. For example, the mobile client <b>110</b> receives a Dynamic Host Configuration Protocol (DHCP) address from the home agent <b>160</b> or from another server. The mobile client <b>110</b> can also detect the presence of a proxy module on the home agent <b>160</b>. Security protocols are established and authenticated <b>324</b> as are compression protocols <b>326</b>. Examples of security protocols include transport layer security (TLS), secure sockets layers (SSL), and wireless TLS (WTLS). Non-limiting examples of a compression protocol include: “Lossless Compression” (LZS®) and Microcom Networking Protocol-5 (MNP5). Optionally, the mobile client <b>110</b> and home agent <b>160</b> exchange secondary authentication information, such as authenticated names, digital certificates and cookies.
[0025] Once the protocols are initialized for a session, initiation of additional connections (e.g., at least a second connection) to the home agent <b>160</b> only requires authentication <b>314</b> to verify that a new connection is between a mobile client <b>110</b> and/or a home agent <b>160</b> that are already party to a session. The same network, security, and compression protocols and parameters are used for information exchange as for the initial connection. For example, the common parameters for multiple sessions may include cryptographic keys, network address assignments, and compression formats (e.g., compression dictionaries). Accordingly, in such examples, all passive <b>230</b> and active connections <b>240</b> use the same security level. The precise level can be determined by a system administrator or user.
[0026] In other examples, the system uses different security protocols and/or compression levels for the different connections. The home agent <b>160</b> and mobile device <b>110</b> establish different security procedures for each connection, e.g., each passive or active tunnel, depending on the connection type. Thus, a connection that requires firewall traversal, e.g., a mobile phone link to the Internet, requires high level security, whereas a wired Ethernet connection to a LAN does not require such a high level of security.
[0027] The mobile client <b>110</b> and/or home agent <b>160</b> can be programmed to determine if additional connections should be opened <b>342</b>. For example, parameters can be set for opening connections, e.g., based on the fee levied for using a particular connection, the connection speed, power drain (e.g., battery power required), and security. The system can scan available passive connections <b>230</b> and active connections <b>240</b> for a variety of criteria. For example, the mobile client <b>110</b> can assess the number of current connections (e.g. active or passive connections), their signal strength, and connection speed. The mobile client <b>110</b> can also detect its own geographic location to determine if it is in transit or leaving the effective range of a current connection, e.g., by using the global positioning system (GPS). Such parameters can be used to determine if additional connections should be opened <b>342</b>, if active connections <b>240</b> should be switched <b>344</b>, and if existing connections should be closed.
[0028] Similarly, the mobile client <b>110</b> and/or home agent <b>160</b> can be programmed to determine if the active connection <b>240</b> should be switched <b>360</b>. Parameters for the decision can include the relative signal strength, latency, transmittal rate, security, cost (e.g., charge per minute or per byte), power drain, and reliability of the different connections. The process of switching <b>360</b> one connection from active <b>240</b> to passive <b>230</b> and another from passive <b>230</b> to active <b>240</b> is termed a “handoff.” The use of common information exchange protocols for all connections can facilitate handoff. For example, TCP timers, packet size and windows do not need to be reconfigured for handoff. This is important for abrupt handoffs when the active connection <b>240</b> is unexpectedly lost and a passive connection <b>230</b> must be promoted to active <b>240</b>.
[0029] Referring to FIG. 4, an exemplary device <b>110</b> is equipped with a memory <b>412</b>, and a processor <b>413</b> for executing instructions. The device <b>110</b> also has a console <b>414</b> (e.g., including a keyboard and display) for sending results to the user and for receiving user commands. The device <b>410</b> includes a chipset <b>420</b> or other interface for connecting the device's subsystems. The chipset <b>420</b> includes an input/output (I/O) interface <b>430</b> such as an I/O controller hub (ICH) or a basic I/O system (BIOS). For example, the ICH can be the Intel® 82801 ICH. The I/O interface is connected to two or more I/O units <b>432</b> and <b>434</b>. These I/O units <b>432</b> and <b>434</b> are used to establish communication channels with the home agent <b>160</b>. For example, the I/O units can include a modem, (e.g., a modem connected to an internal or external mobile phone, a cable modem), an I/R port, a network card, BlueTooth, packet cellular communicator, a satellite connection or a wireless interface (e.g., a wireless interface for CDPD, GPRS, GSM, 802.11a, 802.11b or BlueTooth).
[0030] Referring to FIG. 5, information from an application <b>510</b> running on a mobile client <b>110</b> is mapped to an application <b>560</b> running on a destination server <b>170</b> (i.e. a server other than the home agent <b>160</b>). The mobile client <b>110</b> is connected to the destination server <b>170</b> through the home agent <b>160</b>. The information is passed to a rate limiter <b>520</b> that monitors information transfer rates and quality of service parameters of the application.
[0031] In some examples, the rate limiter <b>520</b> implements the desired quality of service policy such that some application data is given bandwidth priority over other application data. The rate limiter <b>520</b> also guards against the mobile client <b>110</b> sending data to the home agent <b>160</b> faster than the home agent <b>160</b> can forward the data to its final destination, e.g., a destination server <b>170</b>. The home agent <b>160</b> can instruct the rate limiter <b>520</b> on the client to slow down or stop sending data for a specific destination (e.g., the destination server <b>170</b>) when the home agent <b>160</b> is excessively buffering data. This situation can occur, for example, when the mobile client <b>160</b> is sending data to a system with a slower wireless connection (e.g., the mobile client <b>160</b> is sending information to another mobile client through the home agent <b>160</b>).
[0032] The flow indexer <b>521</b> monitors outgoing and incoming requests and information for the application. The flow indexer <b>521</b> can also frame information from the application with information for other applications. The mobility buffer <b>522</b> stores outgoing information (e.g., as packets) until an acknowledgement of its receipt is obtained from the home agent <b>160</b>. If not receipt is received after an interval, the active connection <b>240</b> can be switched and the information (e.g., information packet) can be resent. Likewise, the mobility buffer <b>522</b> issues acknowledgments for information received from the home agent <b>160</b>. The acknowledgements can be sent occasionally, e.g., along with outgoing data, to clear the other-side's mobility buffer. The acknowledgment can be time-insensitive. For example, the other-side's mobility buffer can send additional information before acknowledgments are received. The number of acknowledgments sent can be tailored to reflect the capacity of the other-size's mobility buffer. The mobility buffer sizes can be negotiated when opening the first connection between the client and home agent.
[0033] The information is then sent across a firewall <b>523</b>. This process can include compression or decompression and/or encryption or decryption. Next, the information is sent to the transport socket <b>524</b> of the active connection <b>240</b>.
[0034] The information is sent through the active connection <b>240</b> from the transport socket <b>524</b> on the mobile device <b>110</b> to the transport socket <b>534</b> on the home agent <b>160</b>. The home agent <b>160</b> processes the information in a corresponding manner with firewall traversal <b>5337</b> mobility buffering and acknowledgement <b>532</b>, application socket control <b>531</b>, which similarly dissembles framed information and routes the data to its final destination on the network (e.g., an intranet or the Internet), and mobility rate control <b>530</b>. These processes map incoming information to an application socket <b>540</b> on the home agent <b>160</b>. This socket, in turn, can be linked to an application socket <b>550</b> on a destination server <b>170</b> that is networked to the home agent <b>160</b> by a VPN <b>150</b>. Although the processes described above relates to information sent from the mobile device <b>110</b> to the home agent <b>160</b>, the same processes can be executed for information flowing from the home agent <b>160</b> to the mobile device <b>110</b>.
[0035] Application-specific information may be directed into the active connection <b>240</b> in various ways. Applications can be individually notified of the active connection <b>240</b> and can themselves direct information to the active connection <b>240</b>. In other examples, all application-specific information is directed to a network interceptor that routes the information to the active connection <b>240</b>. For example, applications network calls and data may be captured directly from the applications and forwarded to the home agent <b>160</b>. In other examples, applications use local proxies, e.g., proxies running on the mobile client <b>110</b> to send traffic to the active connection <b>240</b>.
[0036] In some examples, “sockets” are created as software objects which connect an application input/output stream to a network interface. Proxies are also used to process information from other applications.
[0037] Referring to FIG. 6 and proceeding from right to left, the mobile device <b>110</b> is running applications that use three application sockets <b>610</b>, <b>611</b>, and <b>612</b>. An application that requires a network connection can employ one or more of the application sockets <b>610</b>, <b>611</b>, and <b>612</b>. Information exchange to and from a socket is monitored by the flow indexer <b>616</b> and by socket control <b>620</b>.
[0038] Outgoing information is processed by the flow indexer <b>616</b> and the rate limiter <b>622</b>. Rate limiter <b>622</b> provides quality of service and protects against overflow of the home agent <b>160</b> buffer; the home agent <b>160</b> provides the rate limiter <b>622</b> with flow control notifications. Flow control systems (e.g., XON/XOFF or rate-based flow control systems) monitor information transfer rates, buffer load, and receipt acknowledgements. Flow control can be implemented on application and transport sockets on both the mobile client <b>110</b> and the home agent <b>160</b>. For example, if the home agent <b>160</b> is unable to send information to a third destination <b>170</b> as fast as it receives it from the mobile client <b>110</b>, the overflowing socket on the mobile client <b>110</b> is notified. Such measures can prevent the home agent <b>160</b> from buffering excessive data.
[0039] Outgoing information from multiple application sockets is packaged, compressed, encrypted and framed, by units including the upper encoder <b>624</b> and the lower encoder <b>630</b> via the mobility buffer <b>626</b>. The mobility buffer <b>626</b> keeps a copy of the outgoing data until reception is acknowledged. If the active connection is lost and re-established (possibly on a different network interface), the content of mobility buffer <b>626</b> can be resent immediately, or, the computer (home agent or client) can wait for a mobility buffer acknowledgement (sent when a connection becomes active) before resending the exact amount of data the other side requires from the mobility buffer. The decision to send or wait before sending can be made based on the amount of data in the mobility buffer, the estimated bit rate of the active interface, cost of the interface and other values.
[0040] Router <b>640</b> directs traffic from the lower encoder <b>630</b> to the active transport socket (e.g., one of <b>660</b>, <b>670</b>, or <b>680</b>). The active transport socket is a dedicated portal for information flow to the active connection <b>240</b>. Information from the transport sockets to the application sockets is bi-directional. Information is secured using TLS or SSL protocols <b>666</b>. The information is sent across the network firewall by the firewall traversal unit <b>664</b>. Overflow information is buffered by the mobile client <b>110</b> using the outgoing overflow buffer <b>662</b>. This information is stored until the home agent <b>160</b> acknowledges receipt of the contents, e.g., each segment of the contents).
[0041] Each transport socket <b>660</b>, <b>670</b> and <b>680</b> is also monitored by a transport monitor <b>661</b>, <b>671</b>, and <b>681</b>. General transport control <b>692</b> is overseen by the mobility control unit <b>642</b>. General information flow is also monitored by the Statistics (Stats) collector <b>646</b>.
[0042] Incoming information is processed to traverse the firewall <b>664</b>, and then verified and decrypted by the TLS/SSL unit <b>666</b>. Once processed the information is sent via unit <b>640</b> to the lower decoder <b>636</b>, the lower dispatcher <b>638</b> and the upper decoder <b>634</b> and the upper dispatcher <b>632</b>. These units can effect multiple information processing steps, e.g., removing framing information and decompressing and decrypting the information stream or packet. For example, socket control <b>620</b> routes information packets to the appropriate application socket <b>610</b>, <b>611</b> and <b>612</b>.
[0043] The flow indexer <b>622</b> determines the information transmittal rate of the transport socket and appropriately buffers and/or compresses the information. For example, for a slow connection, information is compressed to minimize information size, e.g., number of bytes, despite overhead in computational time to process the information. In contrast, for rapid connections, e.g., when the transmittal rate is not limiting, information is either not compressed or compressed using rapid algorithms that achieve more modest reduction in information size.
[0044] Information transmittal rates can also monitored by applications to indicate the capacity of the active connection <b>240</b>. For example, if capacity is available, applications can process low-level background networking tasks, such as backing up and updating files. If capacity is limited, applications can reduce their communications burden, e.g., by requesting text or WAP pages instead of graphics.
[0045] Referring now to FIG. 7 and proceeding from left to right, the home agent <b>160</b> has a process configuration similar to the one for the mobile client <b>110</b>. Information from connections is mapped to transport sockets <b>760</b> and <b>770</b>. The information is sent for firewall traversal <b>764</b> and <b>774</b> and then for security verification and decryption <b>766</b> and <b>776</b>. A router <b>740</b> directs incoming information to the lower decoder <b>736</b>. Outgoing information is also directed by the router <b>740</b> toward the transport sockets <b>760</b> and <b>770</b> by way of output overflow buffers <b>762</b> and <b>772</b>.
[0046] Mobility control <b>742</b> monitors the information overflow in these buffers <b>762</b> and <b>772</b>, and can appropriately regulate outgoing information through the rate limiter <b>772</b>, the router <b>740</b>, and the lower encoder <b>730</b>.
[0047] Incoming information is processed by the lower decoder <b>736</b> and the upper decoder <b>734</b>. These decoders are linked to the lower dispatcher <b>738</b>, which can issue tunnel or connection specific commands, and the upper dispatcher <b>732</b>, which can issue application specific commands. The decoded information is dissembled into individual items and then distributed to the correct application sockets <b>710</b>, <b>711</b>, and <b>712</b> on the home agent <b>160</b>. Hence, information from the application sockets <b>610</b>, <b>611</b>, and <b>612</b> running on the home agent <b>160</b>, is mapped to corresponding application sockets <b>710</b>, <b>711</b>, and <b>712</b> on the home agent <b>160</b>. As described above, these application sockets also generate outgoing information for delivery to the mobile device <b>110</b>.
[0048] The information can be transmitted through the active connection <b>240</b> by a variety of methods, for example, in packets or as a continuous stream.
[0049] The information sent as packets can be framed. The information from different application sockets can be aggregated such that individual commands and data items from different applications are included in a single information packet. This packet is encrypted and compressed as a single unit using the previously initialized protocols thus obviating the need to include authentication, cryptographic, and compression headers. The packet is framed with minimal header information, such as a checksum and a packet identifier. On reception of the packet, an acknowledgement is issued for the entire packet, e.g., an identifier and/or checksum for the received information. The aggregation of data is in contrast to systems that emit individual data packets for each network call made or data item sent by individual applications. In addition to reducing overhead, framing multiple items together enables larger individual information packets, which can include related items. By placing related items together, the latency due to packet mis-alignment, such as occurs when conventional packets arrive out of order, is reduced.
[0050] Optionally, the protocol includes the reduction of “round trip” information exchanges. When desired, this feature determines if multiple information exchanges between the mobile device and a destination system <b>170</b> (i.e., a system other than the home agent <b>160</b>) can by emulated by a proxy module running on the home agent <b>160</b>. The proxy module interacts with the destination system <b>170</b> on behalf of the mobile client <b>110</b> without having to exchange information with the mobile client <b>110</b>. The use of the proxy module reduces network traffic and overcomes inefficiencies due to the latency of some wireless connections. Proxy modules can be generic, e.g., able to support more than one application, or can be dedicated, e.g., application specific.
[0051] For example, the use of a web browser requires at least three round trips that can be obviated by a proxy module. Conventionally, when a user enters a uniform resource locator (URL) for a web site, the web browser on the mobile client <b>110</b> first sends a request to a domain name server to obtain the actual IP address of the URL. The mobile client <b>110</b> then initiates a TCP connection with the web server at the IP address. Only after confirmation does the mobile client <b>110</b> send a hypertext transfer protocol (HTTP) request to the web server and subsequently receive the hypertext content.
[0052] The use of a proxy module for the web browser instead replaces the three network roundtrips with a single exchange between the home agent <b>160</b> and the mobile client <b>110</b>, thus reducing information traffic in the active connection <b>240</b>. When a user enters a URL for a web site, this URL request is sent on the active connection <b>240</b> to a proxy module on the home agent <b>160</b> or on a destination server <b>170</b>. The proxy module queries the domain name server, initiates the TCP connection, and sends the HTTP request. These steps are done without contacting the mobile client <b>110</b>. When the proxy module receives the hypertext content, it directs it back over the active connection <b>240</b> to the mobile client <b>110</b>.
[0053] An additional method to reduce network traffic is the use of application specific content re-purposing. This feature reformats information, particularly content. Extraneous content can be removed to reduce the amount of data. For example, data is translated by the home agent <b>160</b> from hypertext markup language (HTML) and graphics formats to i-mode or WAP compatible information.
[0054] Frequently, the client <b>110</b> and/or server <b>160</b> have more than one application sending information along a single active connection. Quality of service protocols are utilized to determine which application has priority for communicating information. Quality of service parameters can be implemented at many levels, for example, at the level of the upper encoder <b>624</b> and lower encoder <b>630</b> which frame network calls and data for different applications. The relative content of each framed data packet can be varied in accordance to quality of service parameters.
[0055] Further, the home agent <b>160</b>, as well as the mobile client <b>110</b>, can determine quality of service. Quality of service can be asymmetric such that an application may have high priority on the home agent <b>160</b> to send data to the mobile device <b>110</b>, but may have low priority on the mobile device <b>110</b> for sending data to the home agent <b>160</b>. A quality of service parameter indicating priority for information exchange can be transmitted from the home agent <b>160</b> to the mobile device <b>110</b> or from the mobile device <b>110</b> to the home agent <b>160</b>.
[0056] Other implementations are within the scope of the claims.
[0057] For example, the techniques described here are not limited to any particular hardware or software configuration; they may find applicability in any computing or processing environment. The techniques may be implemented in hardware, software, or a combination of the two. The techniques may be implemented in programs executing on programmable machines such as mobile or stationary computers, personal digital assistants, and similar devices that each include a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and one or more output devices.
[0058] Each program may be implemented in a high level procedural or object oriented programming language to communicate with a machine system. However, the programs can be implemented in assembly or machine language, if desired. In any case, the language may be a compiled or interpreted language
[0059] Each such program may be stored on a storage medium or device, e.g., compact disc read only memory (CD-ROM), hard disk, magnetic diskette, or similar medium or device, that is readable by a general or special purpose programmable machine for configuring and operating the machine when the storage medium or device is read by the computer to perform the procedures described in this document. The system may also be implemented as a machine-readable storage medium, configured with a program, where the storage medium so configured causes a machine to operate in a specific and predefined manner.
[0060] The processes described here may be executed by an embedded system.
Contents3
8 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US7681202B2 | Cited by | United States of America | Search report |
| US2004210528A1 | Cited by | United States of America | Pre-grant |
| US8707291B2 | Cited by | United States of America | Search report |
| US7437548B1 | Cited by | United States of America | Applicant |
| US2008109560A1 | Cited by | United States of America | Pre-grant |
| US8744936B2 | Cited by | United States of America | Search report |
| US2010281162A1 | Cited by | United States of America | Pre-grant |
| US2011099280A1 | Cited by | United States of America | Pre-grant |
| US8601566B2 | Cited by | United States of America | Search report |
| US7965633B2 | Cited by | United States of America | Search report |
| US8475280B2 | Cited by | United States of America | Search report |
| WO03036438A2 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US2010115576A1 | Cited by | United States of America | Pre-grant |
| US9246878B2 | Cited by | United States of America | Applicant |
| US2006017972A1 | Cited by | United States of America | Pre-grant |
| US8819274B2 | Cited by | United States of America | Applicant |
| US8020201B2 | Cited by | United States of America | Search report |
| US2003208601A1 | Cited by | United States of America | Pre-grant |
| US7624165B2 | Cited by | United States of America | Search report |
| US9479565B2 | Cited by | United States of America | Applicant |
| US8572721B2 | Cited by | United States of America | Applicant |
| US2010316047A1 | Cited by | United States of America | Pre-grant |
| US7769869B2 | Cited by | United States of America | Search report |
| US2008043760A1 | Cited by | United States of America | Pre-grant |
| US2004063497A1 | Cited by | United States of America | Pre-grant |
| FR2867004A1 | Cited by | France | Search report |
| US2007043691A1 | Cited by | United States of America | Pre-grant |
| US7716343B2 | Cited by | United States of America | Search report |
| US7558873B1 | Cited by | United States of America | Search report |
| US2007081512A1 | Cited by | United States of America | Pre-grant |
| US9220010B2 | Cited by | United States of America | Applicant |
| US8024416B2 | Cited by | United States of America | Applicant |
| FR2867004A1 | Cited by | France | Search report |
| US2006268820A1 | Cited by | United States of America | Pre-grant |
| DE10244710A1 | Cited by | Germany | Search report |
| US8271661B2 | Cited by | United States of America | Applicant |
| US2003097592A1 | Cited by | United States of America | Pre-grant |
| US2006041890A1 | Cited by | United States of America | Pre-grant |
| US7734281B2 | Cited by | United States of America | Search report |
| US8437345B2 | Cited by | United States of America | Search report |
| US9277376B2 | Cited by | United States of America | Applicant |
| US2016156507A1 | Cited by | United States of America | Pre-grant |
| US2010128602A1 | Cited by | United States of America | Pre-grant |
| WO03036438A3 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US2015327101A1 | Cited by | United States of America | Pre-grant |
| US2015236904A1 | Cited by | United States of America | Pre-grant |
| US8522337B2 | Cited by | United States of America | Search report |
| US7305252B2 | Cited by | United States of America | Search report |
| US2008077707A1 | Cited by | United States of America | Pre-grant |
| US10142806B2 | Cited by | United States of America | Applicant |
| US8996678B2 | Cited by | United States of America | Search report |
| US2003081783A1 | Cited by | United States of America | Pre-grant |
| US2011296167A1 | Cited by | United States of America | Pre-grant |
| US7918734B2 | Cited by | United States of America | Search report |
| US2005124382A1 | Cited by | United States of America | Pre-grant |
| US2006053223A1 | Cited by | United States of America | Pre-grant |
| US2011065500A1 | Cited by | United States of America | Pre-grant |
| US2013145434A1 | Cited by | United States of America | Pre-grant |
| US2008034416A1 | Cited by | United States of America | Pre-grant |
| US8200829B2 | Cited by | United States of America | Search report |
| US2010268782A1 | Cited by | United States of America | Pre-grant |
| US8160079B1 | Cited by | United States of America | Search report |
| US7913294B1 | Cited by | United States of America | Applicant |
| US8180879B2 | Cited by | United States of America | Applicant |
| US2004151186A1 | Cited by | United States of America | Pre-grant |
| US8667115B2 | Cited by | United States of America | Applicant |
| US2014179362A1 | Cited by | United States of America | Pre-grant |
| US8391181B2 | Cited by | United States of America | Search report |
| US2007133411A1 | Cited by | United States of America | Pre-grant |
| US7266365B2 | Cited by | United States of America | Search report |
| US2002062384A1 | Cites | United States of America | Pre-grant |
| US2004022191A1 | Cites | United States of America | Pre-grant |
| US2005132049A1 | Cites | United States of America | Pre-grant |
| US5812784A | Cites | United States of America | Pre-grant |
| US6198920B1 | Cites | United States of America | Pre-grant |
| US6243581B1 | Cites | United States of America | Pre-grant |
| US6400946B1 | Cites | United States of America | Pre-grant |
| US6470390B1 | Cites | United States of America | Pre-grant |
| US6614808B1 | Cites | United States of America | Pre-grant |
| US6674713B1 | Cites | United States of America | Pre-grant |
16 members in 7 offices
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 81116101 | United States of America | A | |
| US20010811161 | – | – | – |
Members16
| Document | Office | Kind | |
|---|---|---|---|
| US2002133598A1 | United States of America | A1 | |
| WO02076063A1 | World Intellectual Property Organization (WIPO) | A1 | |
| AU2002248651A1 | Australia | A1 | |
| WO02076063A8 | World Intellectual Property Organization (WIPO) | A8 | |
| SE0302435D0 | Sweden | D0 | |
| FI20031292A | Finland | A | |
| SE0302435L | Sweden | L | |
| GB2389497A | United Kingdom | A | |
| GB2389497A8 | United Kingdom | A8 | |
| CN1498489A | China | A | |
| GB2389497B | United Kingdom | B | |
| SE526563C2 | Sweden | C2 | |
| FI120073B | Finland | B | |
| CN1498489B | China | B | |
| US2011096741A1 | United States of America | A1 | |
| US9282011B2 | United States of America | B2 |
126 transactions on the USPTO file
Abandoned after 3 non-final rejections, 3 final rejections, 2 RCEs and 1 appeal.
- Non-final rejections
- 3
- Final rejections
- 3
- RCEs
- 2
- Appeals
- 1
Over time
Point at a mark for the transactionTransactions
| Event | |
|---|---|
| Change in Power of Attorney (May Include Associate POA) | |
| Correspondence Address Change | |
| Email Notification | |
| Mail of Abandonment after Examiner's Answer or PTAB DecisionAbandoned | |
| Abandonment after Examiner's Answer or PTAB DecisionAbandoned | |
| Case Docketed to Examiner in GAU | |
| Electronic Review | |
| Email Notification | |
| Mail PTAB Decision on Appeal - Affirmed | |
| PTAB Decision - Examiner Affirmed | |
| Change in Power of Attorney (May Include Associate POA) | |
| Correspondence Address Change | |
| Email Notification | |
| Docketing Notice Mailed to Appellant | |
| Assignment of Appeal Number | |
| Appeal Awaiting PTAB Docketing | |
| Email Notification | |
| Mail Reply Brief Noted by Examiner | |
| Case Docketed to Examiner in GAU | |
| Reply Brief Noted by Examiner | |
| Date Forwarded to Examiner | |
| Reply Brief Filed | |
| Exam. Ans. Review Complete | |
| Electronic Review | |
| Email Notification | |
| Mail Examiner's Answer | |
| Examiner's Answer to Appeal Brief | |
| Date Forwarded to Examiner | |
| Appeal Brief Filed | |
| Case Docketed to Examiner in GAU | |
| Email Notification | |
| Notice -- Defective Appeal Brief | |
| Appeal Brief Review Complete | |
| Date Forwarded to Examiner | |
| Defective / Incomplete Appeal Brief Filed | |
| Appeal Brief Filed | |
| Miscellaneous Incoming Letter | |
| Notice of Appeal Filed | |
| Mail Examiner Interview Summary (PTOL - 413) | |
| Interview Summary Record | |
| Mail Final Rejection (PTOL - 326)Final rejection | |
| Final RejectionFinal rejection | |
| Date Forwarded to Examiner | |
| Response after Non-Final Action | |
| Request for Extension of Time - Granted | |
| Information Disclosure Statement considered | |
| Information Disclosure Statement (IDS) Filed | |
| Information Disclosure Statement (IDS) Filed | |
| Mail Non-Final RejectionNon-final rejection | |
| Non-Final RejectionNon-final rejection | |
| Date Forwarded to Examiner | |
| Date Forwarded to Examiner | |
| Disposal for a RCE / CPA / R129 | |
| Request for Continued Examination (RCE) | |
| Workflow - Request for RCE - Begin | |
| Mail Advisory Action (PTOL - 303) | |
| Advisory Action (PTOL-303) | |
| Date Forwarded to Examiner | |
| Response after Final Action | |
| Mail Final Rejection (PTOL - 326)Final rejection | |
| Final RejectionFinal rejection | |
| Date Forwarded to Examiner | |
| Response after Non-Final Action | |
| Mail Non-Final RejectionNon-final rejection | |
| Non-Final RejectionNon-final rejection | |
| Date Forwarded to Examiner | |
| Date Forwarded to Examiner | |
| Disposal for a RCE / CPA / R129 | |
| Information Disclosure Statement considered | |
| Information Disclosure Statement (IDS) Filed | |
| Information Disclosure Statement (IDS) Filed | |
| Request for Continued Examination (RCE) | |
| Request for Extension of Time - Granted | |
| Workflow - Request for RCE - Begin | |
| Mail Advisory Action (PTOL - 303) | |
| Advisory Action (PTOL-303) | |
| Date Forwarded to Examiner | |
| Response after Final Action | |
| Mail Final Rejection (PTOL - 326)Final rejection | |
| Final RejectionFinal rejection | |
| Date Forwarded to Examiner | |
| Response after Non-Final Action | |
| Request for Extension of Time - Granted | |
| Case Docketed to Examiner in GAU | |
| Mail Notice of Informal or Non-Responsive Amendment | |
| Date Forwarded to Examiner | |
| Informal or Non-Responsive Amendment after Examiner Action | |
| Response after Non-Final Action | |
| Mail Notice of Informal or Non-Responsive Amendment | |
| IFW TSS Processing by Tech Center Complete | |
| Date Forwarded to Examiner | |
| Miscellaneous Incoming Letter | |
| Oath or Declaration Filed (Including Supplemental) | |
| Informal or Non-Responsive Amendment after Examiner Action | |
| Response after Non-Final Action | |
| Request for Extension of Time - Granted | |
| Workflow incoming amendment IFW | |
| Mail Non-Final RejectionNon-final rejection | |
| Non-Final RejectionNon-final rejection | |
| Preliminary Amendment |
2 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Information on status: application discontinuationABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISIONSTCB | STCB | |
| AssignmentAS | AS |
Numbers
- Publication, DOCDB
- 2002133598
- Publication, EPODOC
- US2002133598
- Application
- 9811161
- Application, DOCDB
- 81116101
- Application, EPODOC
- US20010811161
Titles
- English
- Network communication
Classification
- CPC, 10
- H04L43/00
- H04L43/0811
- H04L43/0852
- H04L43/0894
- H04L67/14
- H04L67/04
- H04L69/329
- H04L67/62
- H04L9/40
- H04L67/01
- IPC, 4
- H04L12 26
- H04W72 54
- H04L29 06
- H04L29 08
- USPC, 1
- 709228000