Broadband networks, such as cable, satellite, DSL and fiber networks carry data in the form of graphics, text, video and audio (collectively, “content”) to and from subscribers. Increasingly, the broadband network connects to multiple in-home networks (IHN). However, an IP end-device, such as a personal computer (PC), has access to only one of these networks at a time.
Historically, a PC is shipped with a single network adapter (usually a configurable dial-up adapter or an Ethernet adapter) that permits connection to a single network. A network adapter may be implemented as a physical device, either an internal card or external device that connects to the PC via a port. A network adapter may also be implemented as software in the form of a virtual adapter.
Under these circumstances, the amount of IHN bandwidth that the PC can demand is limited by the capabilities of that network connection. For example, a PC connected to the IHN via a 10baseT Ethernet connection can demand up to 100 megabits per second (Mbits/s) of bandwidth. A PC connected to the IHN via a wireless G connection may be limited to 54 Mbits/s of bandwidth. However, the PC may be capable of processing data at rates in excess of the speed of the network interface connection. Other home network interfaces may use, for example, the residential power line, telephone lines, coax cable runs (advocated by the Multimedia over Coax Alliance or “MoCA”) to provide connectivity.
While configuring an end device with multiple network interfaces may allow the end device to send and receive payloads simultaneously over multiple networks, the bandwidth of each of the networks is available to only a single interface.
Embodiments herein provide systems and methods that permit an end device to partition a payload into payload portions for simultaneous transmission over multiple networks so as to increase the effective bandwidth available to the end device. Additional embodiments permit the end device to receive portions of a partitioned payload via multiple networks and to reassemble the payload into its pre-partitioned form.
The accompanying drawings, which are incorporated herein and constitute part of this specification, illustrate exemplary aspects of the invention. Together with the general description given above and the detailed description given below, the drawings serve to explain features of the various embodiments.
As used herein, the term “payload” encompasses a collection of related packets that may represent video content, audio content, photographic content, text content, game content, voice content and multi-media content.
As used herein, the term “end device” encompasses, for example, desktop computers, laptop computers and mobile devices and other processor-equipped devices that may be developed in the future that may be configured to permit a user to interact with other devices over a network. In one embodiment, an end device 104 may be a personal computer. By way of illustration, the functional components of a personal computer 760 are illustrated in
As used herein, a “server” encompasses a computing device that may be configured to interact in an automated fashion with other devices over a network to serve content and web pages, to issue responses to communications from other network devices and to respond to queries from other network devices.
As used herein, a “gateway” encompasses a computing device that may be configured to provide connections between different networks, including connections between a single “outside network” and multiple “inside networks.”
A number of the aspects described below (including broadband home gateway 140) may be implemented with any of a variety of remote server devices, such as the server 900 illustrated in
The broadband home gateway further comprises a payload manager module 142. The payload manager module 142 operates on both uploaded and downloaded payloads as will be discussed in detail below. The payload manager module 142 may be implemented as a software application that is stored in a memory of the broadband home gateway 140 and executed by a processor of the broadband home gateway 140.
The network end device 104 comprises network interfaces for each of the multiple homed networks. As illustrated in
The network end device 104 further comprises payload manager module 110. The payload manager module 110 operates on both uploaded and downloaded payloads as will be discussed in detail below. The payload manager module 110 may be implemented as a software application that is stored in a memory of the end device 104 and executed by a processor of the end device 104.
In an embodiment, the network end device 104 registers with the broadband home gateway 140. The registration of the network end device 104 with the broadband home gateway 140 facilitates the routing of payload portions from the end device 104 to the broadband home gateway 140.
The end device 104 is registered with the broadband home gateway 140 (block 200). A payload manager module 110 is implemented on the end device 104 (block 202). A payload manager module 142 is implemented on the broadband home gateway 140 (block 204).
The payload manager module 110 implemented on end device 104 is configured to partition an upload payload into “payload portions,” and to send a payload portion to each network interface associated with a homed network (block 206).
The payload manager module 142 implemented on the broadband home gateway 140 is configured to receive all of the upload payload portions, to reconstruct the payload from the payload portions, and to send the payload to its destination (block 210).
The payload manager module 142 implemented on the broadband home gateway 140 is configured to receive a payload download from the Internet destined for the end device 104, to partition the payload into “payload portions,” and to send one of download payload portions to each homed network (block 212). Each of the network interfaces associated with the homed networks is configured to receive a download payload portion and route it to the end device 104 (block 214). The payload module 110 implemented on end device 104 is configured to receive the payload portions from the home networks and to reconstruct the payload from the payload portions (block 216).
The payload is processed by a payload manager module 110 to partition the payload into portions. As illustrated in
The respective payload portions A, B and C are sent to the broadband home gateway 140. The respective payload portions A, B, C and D are routed to the broadband home gateway 140 via the home network associated with a particular network interface. Thus, the payload portion A is sent through the network interface A 112 over the homed network A 150 to the broadband home gateway 140. Similarly, payload portion B is sent through the network interface B 114 over the homed network B 152 to the broadband home gateway 140, and the payload portion C is sent through the network interface C 116 over the homed network C 154 to the broadband home gateway 140. The payload portions A, B, and C are processed by payload manager module 142 implemented on the broadband home gateway 140. The payload manager 142 is configured to receive all of the payload portions, to reconstruct the payload from the payload portions, and to send the payload to its destination (not illustrated).
The payload is processed by the payload manager module 142 implemented on the broadband home gateway 140 to partition the payload into portions. As illustrated in
The respective payload portions A, B, and C are received by the end device 104 and processed by the payload manager module 110 implemented on the end device 104. The payload manager 110 is configured to receive all of the payload portions and to reconstruct the payload from the payload portions.
The foregoing method descriptions and the process flow diagrams are provided merely as illustrative examples and are not intended to require or imply that the steps of the various embodiments must be performed in the order presented. As will be appreciated by one of skill in the art the order of steps in the foregoing embodiments may be performed in any order. Further, words such as “thereafter,” “then,” “next,” etc. are not intended to limit the order of the steps; these words are simply used to guide the reader through the description of the methods.
The various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
The hardware used to implement the various illustrative logics, logical blocks, modules, and circuits described in connection with the aspects disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but, in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of the computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. Alternatively, some steps or methods may be performed by circuitry that is specific to a given function.
In one or more exemplary embodiments, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium. The steps of a method or algorithm disclosed herein may be embodied in a processor-executable software module which may reside on a computer-readable medium. Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A storage media may be any available media that may be accessed by a computer. By way of example, and not limitation, such computer-readable media may comprise RAM, ROM, EEPROM, CD-ROM or other optical disc storage, magnetic disk storage or other magnetic storage devices, or any other medium that may be used to carry or store desired program code in the form of instructions or data structures that may be accessed by a computer.
Also, any connection is properly termed a computer-readable medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media. Additionally, the operations of a method or algorithm may reside as one or any combination or set of codes and/or instructions on a machine readable medium and/or computer-readable medium, which may be incorporated into a computer program product.
The preceding description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein. Further, any reference to claim elements in the singular, for example, using the articles “a,” “an,” or “the,” is not to be construed as limiting the element to the singular.