ABSTRACT
Embodiments of the invention provide methods and systems for optimizing network connections by a computing device.
One or more network connections between a source and a destination may be monitored for one or more values of one or more connection parameters. Thereafter, one or more values of the connection parameters of the monitored network connections may be analyzed to select one or more combinations of the values. Further, the selected combinations of the values of the connection parameters may be stored. Subsequently, one or more monitored network connections may be established based on the stored values of the combinations.

Optimizing network connections
FIELD OF THE INVENTION
The invention relates to network connections and more specifically the invention relates to optimization of network connections.
BACKGROUND OF THE INVENTION
-
Various users across the globe communicate or perform various activities on computer and device networks. Moreover, the users interact with each other through the networks, such as the Internet. Typically, the users use devices like personal computers to interact over the Internet. The users can interact from various Internet websites or social networking sites, for example, Facebook, Myspace, Hi5, and Orkut etc. Recently, the development in mobile devices such as cell phones, smartphones and PDAs, computers, laptops and the like has enabled them to be used for performing various activities on networks such as the Internet. Moreover, the mobile devices can be used for real-time interaction with other users on the network. The interaction or communication can be in the form of chatting, playing interactive online games, browsing, shopping, music, video, banking, business and the like.
- The rapid pace of innovation in technology has generated various types of devices and platforms. Moreover, the number of devices is increasing rapidly. For example, there are various operating systems available for the devices such as Windows, Linux, Macintosh, and Symbian, etc. Moreover, a large number of J2ME platforms are available for the mobile devices such as cell phones. Furthermore, the mobile devices have a wide range of capabilities in terms of screen size, screen type, screen resolution, processor, and memory etc. The advancement in technology has enabled multi-user interaction on the network, for example multi-player games on mobile devices. Moreover, with rapid decline in prices of hardware, advanced and inexpensive devices are readily available. Furthermore, advancements in software, operating systems, and input output interfaces have enabled the development of high performance media capabilities on devices. Interactive applications such as media games are now being developed which allow multi-user interactions on networks. As a result, the number of users and the requirement for the quality of service in the network is increasing rapidly.
- The experience of users over the network is guided by various connection parameters such as bandwidth, latency, quality of service etc. In case of online applications such as gaming, file sharing, peer-to-peer connections etc., users often encounter low connection speed or bandwidth. In some cases the low connection speed or bandwidth is due to some adjustments at Internet Service Provider (ISP) end. For example, an ISP may implement some kind of transparent proxy that analyzes traffic, caches some network packets, and slows down low-priority connections such as file sharing, p2p, etc. As a result, slow data connection may cause login delays, disconnections, other application flow problems. For example, in case of an online game, the game might be disconnected.
- Various mechanisms are available that provide solutions to slow network connections. As shown in FIG. 1A, fast port detection is a mechanism used to detect and use a low latency connection for a client 102. In case of fast port detection mechanism, a piece of software scans for open ports on a network host. Therefore, in case of latency, the connection is switched to an alternate fast port. Subsequently, an application server 104that is providing the services over a network 106 can then be connected with a main application executing on client 102 through the low latency connection.
- In some cases, a particular protocol may not be supported by a network connection. Moreover, an ISP or service provider can block a particular connection over a network connection. For example, Transmission Control Protocol (TCP) may be allowed over mobile phone communication, while Hyper Text Transfer Protocol (HTTP) may not be supported. Further, low priority connections such as file sharing or peer-to-peer connections may be slowed down by the ISP.
- Generally, a mechanism known as tunneling protocol may be used to establish connection and send data over such blocked or unsupported network connection. As shown in FIG. 1B, a proprietary protocol is encapsulated with some widely used protocol headers 108 in client 102. For example, HTTP protocol may be encapsulated by TCP and communicated over a mobile phone network. Therefore, as shown in FIG. 1B, HTTP header and data packet are encapsulated by proprietary protocol 108. Moreover, HTTP protocol may encapsulate native protocols in order to path through standard Internet gateways.
- In some cases, the ISP’s blocks big files or long lasting files. Multi-home Server may be used in this case to change from one IP to another IP. Another technique may be to move to a new distributed server. However, moving to a new server may be complicated. For example, in case of online games, implementation of a new state machine at the new server may make the movement complicated.
- Presently, the mechanisms available are not reliable or fast for online applications. A mechanism is therefore desirable for optimizing network connections.
SUMMARY
-
Embodiments of the invention may provide a method for optimizing network connections by a computing device. One or more network connections between a source and a destination are monitored for one or more values of one or more connection parameters. Thereafter, one or more values of the connection parameters of the monitored network connections are analyzed to select one or more combinations of the values. Further, the selected combinations of the values of the connection parameters are stored. Subsequently, one or more monitored network connections are established based on the stored values of the combinations.
- Embodiments of the invention may further provide a system for optimizing network connections. The system may comprise means for monitoring one or more network connections between a source and a destination for one or more values of one or more connection parameters; means for analyzing the one or more values of the connection parameters of the monitored network connections to select one or more combinations of the values; means for storing the selected combinations of the values of the connection parameters; and means for establishing one or more monitored network connections based on the stored values of the combinations.
- Embodiments of the invention may further provide an apparatus for optimizing network connections. The apparatus may comprise: a monitoring module configured to monitor one or more network connections between a source and a destination for one or more values of one or more connection parameters; a selection module configured to analyze the one or more values of the connection parameters of the monitored network connections to select one or more combinations of the values; a memory configured to store the selected combinations of the values of the connection parameters; and a connection module configured to establish one or more monitored network connections based on the stored values of the combinations.
- Embodiments of the invention may further provide a system for optimizing network connections. The system may comprise: a monitoring module configured to monitor one or more network connections between a source and a destination for one or more values of one or more connection parameters; a selection module configured to analyzing the one or more values of the connection parameters of the monitored network connections to select one or more combinations of the values; a memory configured to store the selected combinations of the values of the connection parameters; and a connection module configured to establish one or more monitored network connections based on the stored values of the combinations.
- Embodiments of the invention may further provide a computer-readable medium having instructions to be executed by a processor for optimizing network connections. The computer-readable medium may have stored thereon instructions that, if executed by a computing device, may cause the computing device to execute a method comprising: monitoring one or more network connections between a source and a destination for one or more values of one or more connection parameters; analyzing the one or more values of the connection parameters of the monitored network connections to select one or more combinations of the values; storing the selected combinations of the values of the connection parameters; and establishing one or more monitored network connections based on the stored values of the combinations.