The present invention relates to wireless mesh networks and, in particular, to the use of infrastructure multi-hop wireless mesh networks for delivery of high quality content services to client devices.
Conventionally, content is streamed over the Internet to end users either directly from a content source server or indirectly via edge servers in Content Distribution Networks (CDNs). By deploying many edge servers strategically located at the edge of the Internet; the CDN approach is able to reduce the traffic through the network, shorten the users' startup delay, and improve the users' viewing quality. P2P content streaming has emerged as an alternative due to low server infrastructure cost. By utilizing participating users'/peers' resources (upload bandwidth, storage space, processing power, etc.), the available resources in a peer-to-peer system grow in proportion to the number of users/peers. As used herein, “/” denotes alternative names for the same or similar acts or components.
P2P applications were first introduced as a means for file sharing. Applications such as BitTorrent and KaZaa attracted a large number of users and contribute to a large amount of the network traffic over the Internet. Other techniques have also been developed for P2P file sharing. Recently, P2P techniques have also been adopted to support content streaming service. However, P2P streaming experiences problems such as a long start-up delay time and churn-induced instability that can greatly degrade the user experience. Furthermore, most of the P2P streaming work was done in a wired network setting and did not consider the impact of the unique features of wireless networks. Because of limited bandwidth, signal interferences due to shared medium, the multi-hop path problem, the number of flows and the goodput obtained by each flow is limited in a backhaul wireless mesh network (WMN). Goodput is the number of bits per second correctly received by a receiver/client device/end device/end user. The number of peers sharing the same content within a wireless mesh network may be small due to limited network geographic size and peer population. If each peer in the wireless mesh network shares different content with other peers in the wired Internet, heavy traffic load for the gateway results. In addition, if the communication path includes many hops between the gateway and the clients, or among the peers in the mesh network, the communication path will consume a lot of wireless network bandwidth resources, especially in a wireless medium, which is a shared medium. When a transmission occurs between two nodes on a wireless channel, all the other nodes within the interference range cannot transmit any data on the same channel because of interference. With conventional P2P streaming techniques, it is difficult to guarantee the quality of service (QoS) for a reasonable number of content flows in current infrastructure WMNs.
Significant progress has been made in deploying IEEE 802.11 based WMNs to provide last-mile accessibility for Internet users. Meanwhile, streaming of multimedia content over IP networks is becoming increasingly popular. With the growing deployment of WMNs and increasing number of WMNs users, supporting multimedia streaming over wireless mesh network has become increasingly important.
Content streaming over mobile ad hoc networks and wireless mesh networks has been studied. Various client-server techniques, such as multiple description coding and path diversity from a single server to the receiver, have been developed for delivery of content services and transmitting content over wireless networks. Considering wireless network properties and the strict requirements of the streaming applications, cross-layer approaches have also been explored to improve the transport efficiency from a single server to a client device. However such client-server methods do not scale very well and can lead to traffic congestion around the server (or the gateway if the server is in the wired interne).
In wireless mesh networks, the path established between two nodes may go through several relay nodes/mesh access points. Due to self-interference in wireless medium, the path capacity decreases as the hop count increases. Furthermore, large hop counts increase the chance of wireless signal interferences, which negatively impacts both its own flow transmission (self-interference) and other established connections (cross-interference) and reduces the overall system capacity. However, the hop count is not the sole factor determining the path quality. The quality of a radio link depends on the received radio signal strength, the packet loss rate, contention among nearby nodes, link data rate, and traffic load on the link. IEEE 802.11 radios support multi-rate adaptation according to link quality. A multi-hop high rate path may be capable of achieving better throughput and shorter delay than a single hop low rate path. How to provide scalable, high quality media/content streaming service over the wireless mesh network is a challenging problem.
Multi-hop wireless mesh networks (WMNs) are emerging as a promising technology that has applicability in metro-area Internet access, public safety, and transient networks. There are two types of mesh networks: client-mesh networks and infrastructure-mesh networks. Client-mesh networks or ad hoc networks are formed by client devices with no infrastructure required. In client-mesh networks, each node plays the same role and participates in packet routing and forwarding. In contrast, infrastructure WMNs consist of mesh access points (MAPs)/routers and client devices. The MAPs are interconnected via wireless links to form a multi-hop wireless mesh backhaul infrastructure. One or more MAPs are connected to the wired Internet and are referred to as gateways. Generally, a MAP has two or more radio interfaces. One radio interface is an access interface, which is for network access of clients. A second radio interface is a relay interface, which is for routing and data forwarding. Client devices (e.g., laptops, dual-mode smart phones, personal digital assistants (PDAs) etc.) associate themselves with a nearby MAP to access the wireless mesh network. Client devices/end devices do not participate in packet relay or the routing process. A client device sends (or receives) packets to (or froth) its associated MAP. Packet delivery in the WMN is handled by the MAP through a backhaul routing protocol.
The present invention is a unified peer-to-peer (P2P) and cache (UPAC) framework for delivery of high quality content services, e.g. content streaming and video-on-demand services over infrastructure multi-hop wireless mesh networks (infrastructure WMNs). As used herein, content includes audio, video, data, information, multimedia etc. Streaming content in multi-hop wireless networks faces many challenges, e.g., the varying available path bandwidth, signal interferences due to shared medium, the impact of multiple relay nodes, etc. To increase the capacity of the infrastructure WMNs and ensure high content quality and streaming services, the present invention caches the content at selected wireless mesh access points (MAPs) in the multi-hop wireless mesh network. Furthermore, peers are used to help in a best effort manner to reduce the workload imposed on the servers and networks. This UPAC framework has the advantages of both content distribution network approach and peer-to-peer networking approach. The UPAC of the present invention fits the specific characteristics of quality-of-service (QoS) aware content services in wireless mesh networks, for optimizing system performance. In UPAC, to obtain optimal content quality, a device can form a peer-to-peer relationship with MAP content cache servers and other peer devices. Meanwhile, a device can also form a client-server relationship with MAP content cache servers. In addition, the methods are described to choose the serving cache server for a client device and the end-to-end route between the server and the client device.
A method and apparatus for receiving content over a wireless network are described, including determining a first server from which to receive a content clip to be streamed, requesting the content clip to be streamed from the selected first server, receiving the streamed content clip from the selected first server, determining a peer device from which to receive a content clip to be downloaded, requesting the content clip to be downloaded and receiving the downloaded content clip. The first server is a mesh content server.
The present invention is best understood from the following detailed description when read in conjunction with the accompanying drawings. The drawings include the following figures briefly described below:
Given the MAPs as infrastructure in WMNs, as well as the advances in processing power and storage, the present invention caches the content (audio, video and/or multimedia content) at selected wireless mesh access points or co-locates a cache server with selected MAPs in the wireless mesh network in order to increase the system capacity for the video/multimedia services and ensure high content service quality. Furthermore, the present invention uses peers on a best effort basis to balance the workload over the network and reduce the resource consumption along the path between the source and the sink/client device/end device, if possible.
The main differences between the architecture of the present invention and the existing Internet CDN schemes are:
The present invention is a unified peer-to-peer (P2P) and cache (UPAC) framework/architecture for high quality content (audio, video, multimedia) delivery services, such as video-on-demand and content streaming over infrastructure WMNs. UPAC employs multiple mesh content servers and peer-to-peer techniques. The term “mesh content server” is not intended to be limiting and can distribute any form of content including audio, video, data and multimedia content. To increase the system capacity of the content services and ensure high content quality, the content is cached at selected wireless mesh access points in the mesh network. Alternatively, content servers are co-located with selected MAPs within the wireless mesh network. As used herein, a mesh content server is a MAP with cache or a MAP with a co-located content server. A mesh content server can also be a gateway to the Internet. The mesh content servers in the UPAC perform two roles, content server and peer. As a content server, a mesh content server can stream content to the client devices as requested. As a peer, a mesh content server is a peer for P2P data fetching. The mesh content server supports two scheduling schemes, streaming and data fetching. Streaming requires in-order delivery of streamed content/data. P2P data fetching may use a different dissemination policy, for example, a dissemination policy to maximize data availability among the peers. Client devices, if available in the mesh, serve as best effort peers to further reduce the traffic load imposed on the servers and networks. For optimizing content service quality, a client device can form a P2P relationship with mesh content servers and other peer devices. Meanwhile, a client device can establish a client-server relationship with a mesh content server.
As used hereinafter, the terms MAP and mesh content server may be used interchangeably. However, as described above a mesh content is a MAP with cache or a MAP with a co-located content server. A gateway mesh content server is a gateway to a wired network such as the Internet with cache or a co-located content server. A gateway mesh content server is a mesh content server and also a gateway.
Specifically, in
A MAP, supports two kinds of wireless functions, network access and data relay. The network access function provides network access for client devices/end devices. The relay function is used to construct the multi-hop wireless mesh backhaul and relay client devices' traffic to the destination. A mesh client device/client device (e.g., laptop, PDA and dual-mode smart phone etc.) associates with a nearby MAP to access the wireless mesh network. The client device does not participate in packet relay and routing. The client device sends (or receives) packets to (or from) its associated MAP. The rest of the packet delivery is handled by the MAP through a backhaul routing protocol.
In UPAC, it is assumed that there is a main content server which is the original content source. The main content server may reside outside the wireless mesh network or inside the wireless mesh network. It is further assumed that content is delivered to the mesh content servers of the present invention located within the wireless mesh network through mechanisms and means such as off-peak hours delivery. The mesh content servers have cache functionality or are co-located with content server.
The mesh content servers are placed according to the policy that each mesh client can access at least one mesh content server within a few hops. That is because each mesh content server will serve some parts of the content to the nearby client devices so that the hop count should be as small as possible. This is, especially true in a single radio wireless mesh network because the hop count affects the available bandwidth significantly. This is because a wireless mesh network is a shared medium, for example, an IEEE 802.11 network. In a shared medium a flow may interfere with itself during data forwarding from one hop to the next and also interfere with other neighboring flows. Thus, the performance in wireless mesh networks often degrades beyond two or three hops for applications requiring either high bandwidth or low latency.
In the UPAC, the content file is divided into multiple equal-size segments, denoted as clips. The playback time of the start of the clip minus a time delay D is defined as the deadline of this clip, i.e. the deadline for a clip is the time D before the playback time of the start of the clip. D is a parameter related to the network transmission and processing delay. For each clip, a client device may have different mesh content servers and peers. The client treats each clip as an independent file and obtains the clips in their original order before its deadline. By dividing the large file into clips, the client device can better adapt to dynamic network conditions and peer topologies. Different mesh content servers may cache different content or different clips of the same content. For each clip, a client device discovers the mesh content servers either in a centralized scheme via the main content server or in a distributed way. Then a primary mesh content server and a secondary mesh content server are selected.
In the UPAC of the present invention, there is also a tracker module (not shown). A P2P tracker module can be a MAP or a mesh content server or an entirely separate device. The P2P tracker module is a centralized source of the P2P network directory and provides directory information such as which devices have which content. A client device issues a request to the P2P tracker module if P2P fetching is activated. The P2P tracker module maintains the status of peers/users in the system. It should be noted that the mesh content servers can also run the P2P protocol and serve as a peer. The P2P tracker module sends feedback messages to the client device informing the client device of the set of the peers/users that can provide the same content as the client device is requesting. The client device then sets up peer relationships with the selected peers to fetch and provide data/content to itself and other peers.
Because of the limited content, network and processing resource, and dynamics each peer may have, there is no guarantee that the client device can get the data in time from other peers. The client device can request the first N content clips (N≧1) streamed from one or more mesh content servers to ensure that the content/data the client device wants is available and the startup delay is minimized. The client device requests the first clip (clip i=1) from its first clip's designated/selected primary mesh content server. If the primary mesh content server becomes unavailable, the client device will immediately request the first clip from its designated/selected secondary mesh content server. Then, the client device requests the second clip (clip i=2) from its second clip's primary (or secondary if the primary is unavailable or unable) mesh content server. This process continues until the clip i (i=N) is received from the clip i's primary (or secondary) mesh content server.
Meanwhile, the client device requests and fetches other clips of content (i>N) from its peers and tries to use peer resources as much as possible. For the P2P data fetching of each clip in UPAC, the clip is further divided into smaller chunks or sub-clips. These small chunks are exchanged (fetched or provided) among the peers. Within a clip, one example dissemination policy is that the rarest data chunks are first fetched from the peers. Other dissemination policies for the P2P data fetching can also be used.
If the content/data in a clip cannot be fetched from peers before the playback deadline, the client device requests the missing data from its primary mesh content server directly. Furthermore, if the primary mesh content server becomes unavailable, the client will immediately request the missing data from its secondary mesh content server. The primary or the secondary mesh content server streams the missing content/data to the client device in its original order.
In general, a mesh content server has three main tasks. First, a mesh content server is responsible for streaming the first N clips of the requested content, to the requesting client device. Second, a mesh content server provides complementary streaming for missing data before the playback deadline of a clip. Third, the mesh content server serves as a P2P seed for content/data. When a client device requests content, the client device takes some time to establish routes to peers and locate the desired content. In real time applications, a long startup delay is not desirable. In addition, there is no guarantee that other peers have the requested content/data, so the selected mesh content server transmits the first N clips of the content/data so that startup delay is reduced. Each clip of content should be fetched before its playback time. Once the playback deadline of a clip is reached, no P2P fetching of the playback clip is allowed since the newly downloaded data could be outdated. Complementary streaming from the mesh content server is initiated because complementary streaming provides content/data in its original order with less latency. Complementary streaming helps the client device get the data which cannot be fetched in time from other peers.
A P2P tracker module is used for P2P data fetching. The P2P tracker module for content/content clips is known in advance by the client devices. Each of the peers periodically updates their status with the P2P tracker module so that the P2P tracker module has the most recent/up-to-date information for the peers in the P2P network for the content/content clips. Once a client device requests content/data/clips, the client device will communicate with the P2P tracker module first and query the P2P tracker module regarding the peers from which the client device can obtain content which the client device needs/desires. Then the client device establishes (or tries to establish) a P2P relationship with the peers on a list provided by the P2P tracker module. Note that the client device only associates with one of the MAPs and does not participate in routing within the infrastructure WMN. The client device sends the peer request packet to the peer via the MAP with which the client device is associated. When the MAP receives a peer request packet (or any packet destined for another peer) from a client device with which it is associated, the MAP discovers, establishes, and maintains the best route to the peer on behalf of the client device based on the destination address in the peer request packet using an on-demand or proactive routing protocol and routing metrics.
To facilitate cross-layer design to improve P2P data fetching performance, the UPAC of the present invention implements a proxy at each MAP. The MAP informs the associated client device of the path cost to the client device's peers and whether the peer is associated with the same MAP as the requesting client device. Therefore, the client device has the path cost information to each of the peers with which the client device desires to establish communications for the purpose of exchanging content. When a client device fetches data from its associated peers, the client device gives higher priority to the peers associated with the same MAP or with better path cost.
Mesh content servers play an important role in increasing the network capacity and improving the QoS for content (audio, video and/or multimedia) services in infrastructure WMNs. In the present invention, there are several schemes for mesh content server discovery and selection as follows:
As described above, a client device treats each clip of content as a separate file to adapt to dynamic network conditions. The client device discovers and selects the primary and secondary mesh content servers for each clip independently. During the serving time of each content clip, if the primary mesh content server becomes unavailable, the client device will switch to the secondary mesh content server to obtain the content. Meanwhile the client device will re-initiate the server discovery and selection process using one of the above schemes to identify a new secondary mesh content server.
It is to be understood that the present invention may be implemented in various forms of hardware, software, firmware, special purpose processors, or a combination thereof. Preferably, the present invention is implemented as a combination of hardware and software. Moreover, the software is preferably implemented as an application program tangibly embodied on a program storage device. The application program may be uploaded to, and executed by, a machine comprising any suitable architecture. Preferably, the machine is implemented on a computer platform having hardware such as one or more central processing units (CPU), a random access memory (RAM), and input/output (I/O) interface(s). The computer platform also includes an operating system and microinstruction code. The various processes and functions described herein may either be part of the microinstruction code or part of the application program (or a combination thereof), which is executed via the operating system. In addition, various other peripheral devices may be connected to the computer platform such as an additional data storage device and a printing device.
It is to be further understood that, because some of the constituent system components and method steps depicted in the accompanying figures are preferably implemented in software, the actual connections between the system components (or the process steps) may differ depending upon the manner in which the present invention is programmed. Given the teachings herein, one of ordinary skill in the related art will be able to contemplate these and similar implementations or configurations of the present invention.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US07/19094 | 8/30/2007 | WO | 00 | 2/24/2010 |