Traditional data communications in Internet and wireless cellular networks are based on client-server model. The communicating parties establish a relationship, and transmit and receive Internet protocol (IP) packets that contain data and source and destination addresses. The IP packets are transported by the network based on the destination address.
The distribution and delivery of content including multimedia content is dominant use of Internet and mobile networks. The content delivery traffic over Internet and mobile networks will continue to grow in the future. A content object may be available from multiple hosting locations. Multimedia content, for example a video clip, may be in many formats and resolutions. A user device may be able to play multiple formats and have different operating conditions (e.g., bandwidth, processing capability, memory, storage, battery power, etc.). A user is interested in the content itself, rather than the content source location. Furthermore, it would be advantageous if the content is delivered to the user in a proper format that can be efficiently decoded by the user device and at a desirable resolution and best available quality.
While the host-centric model of the Internet has enabled a broad range of network applications and services and enables a host to send data to another host, it is not efficient to support content retrieval functionality. Without specifying a content host location, a user cannot directly retrieve the content. Furthermore, the Internet is content-unaware, thus has no intelligence to cache the content selectively to improve network efficiency.
A method and apparatus for automatically discovering and retrieving content based on a content identity (ID) are disclosed. User agents and content control entities in the network interact for registering the content, discovering the content hosts and sources, and initiating and controlling the content session. A content name resolution handler (CNRH) is provided for mapping content IDs to network locations or addresses. Two or more content service provider networks may interconnect each other to discover and retrieve the content across the content service provider network domains. A content request from a client device includes a content ID that uniquely identifies a content object. The content ID is resolved with a CNRH to obtain identity information of at least one content provider for serving the content request. A content provider is selected and the content request is forwarded to the selected content provider. The content request may be routed to the selected content provider via IP multimedia subsystem (IMS) control plane entities.
A more detailed understanding may be had from the following description, given by way of example in conjunction with the accompanying drawings wherein:
As shown in
The communications systems 100 may also include a base station 114a and a base station 114b. Each of the base stations 114a, 114b may be any type of device configured to wirelessly interface with at least one of the WTRUs 102a, 102b, 102c, 102d to facilitate access to one or more communication networks, such as the core network 106, the Internet 110, and/or the networks 112. By way of example, the base stations 114a, 114b may be a base transceiver station (BTS), a Node-B, an eNode B, a Home Node B, a Home eNode B, a site controller, an access point (AP), a wireless router, and the like. While the base stations 114a, 114b are each depicted as a single element, it will be appreciated that the base stations 114a, 114b may include any number of interconnected base stations and/or network elements.
The base station 114a may be part of the RAN 104, which may also include other base stations and/or network elements (not shown), such as a base station controller (BSC), a radio network controller (RNC), relay nodes, etc. The base station 114a and/or the base station 114b may be configured to transmit and/or receive wireless signals within a particular geographic region, which may be referred to as a cell (not shown). The cell may further be divided into cell sectors. For example, the cell associated with the base station 114a may be divided into three sectors. Thus, in one embodiment, the base station 114a may include three transceivers, i.e., one for each sector of the cell. In another embodiment, the base station 114a may employ multiple-input multiple output (MIMO) technology and, therefore, may utilize multiple transceivers for each sector of the cell.
The base stations 114a, 114b may communicate with one or more of the WTRUs 102a, 102b, 102c, 102d over an air interface 116, which may be any suitable wireless communication link (e.g., radio frequency (RF), microwave, infrared (IR), ultraviolet (UV), visible light, etc.). The air interface 116 may be established using any suitable radio access technology (RAT).
More specifically, as noted above, the communications system 100 may be a multiple access system and may employ one or more channel access schemes, such as CDMA, TDMA, FDMA, OFDMA, SC-FDMA, and the like. For example, the base station 114a in the RAN 104 and the WTRUs 102a, 102b, 102c may implement a radio technology such as Universal Mobile Telecommunications System (UMTS) Terrestrial Radio Access (UTRA), which may establish the air interface 116 using wideband CDMA (WCDMA). WCDMA may include communication protocols such as High-Speed Packet Access (HSPA) and/or Evolved HSPA (HSPA+). HSPA may include High-Speed Downlink Packet Access (HSDPA) and/or High-Speed Uplink Packet Access (HSUPA).
In another embodiment, the base station 114a and the WTRUs 102a, 102b, 102c may implement a radio technology such as Evolved UMTS Terrestrial Radio Access (E-UTRA), which may establish the air interface 116 using Long Term Evolution (LTE) and/or LTE-Advanced (LTE-A).
In other embodiments, the base station 114a and the WTRUs 102a, 102b, 102c may implement radio technologies such as IEEE 802.16 (i.e., Worldwide Interoperability for Microwave Access (WiMAX)), CDMA2000, CDMA2000 1X, CDMA2000 EV-DO, Interim Standard 2000 (IS-2000), Interim Standard 95 (IS-95), Interim Standard 856 (IS-856), Global System for Mobile communications (GSM), Enhanced Data rates for GSM Evolution (EDGE), GSM EDGE (GERAN), and the like.
The base station 114b in
The RAN 104 may be in communication with the core network 106, which may be any type of network configured to provide voice, data, applications, and/or voice over internet protocol (VoIP) services to one or more of the WTRUs 102a, 102b, 102c, 102d. For example, the core network 106 may provide call control, billing services, mobile location-based services, pre-paid calling, Internet connectivity, video distribution, etc., and/or perform high-level security functions, such as user authentication. Although not shown in
The core network 106 may also serve as a gateway for the WTRUs 102a, 102b, 102c, 102d to access the PSTN 108, the Internet 110, and/or other networks 112. The PSTN 108 may include circuit-switched telephone networks that provide plain old telephone service (POTS). The Internet 110 may include a global system of interconnected computer networks and devices that use common communication protocols, such as the transmission control protocol (TCP), user datagram protocol (UDP) and the internet protocol (IP) in the TCP/IP internet protocol suite. The networks 112 may include wired or wireless communications networks owned and/or operated by other service providers. For example, the networks 112 may include another core network connected to one or more RANs, which may employ the same RAT as the RAN 104 or a different RAT.
Some or all of the WTRUs 102a, 102b, 102c, 102d in the communications system 100 may include multi-mode capabilities, i.e., the WTRUs 102a, 102b, 102c, 102d may include multiple transceivers for communicating with different wireless networks over different wireless links. For example, the WTRU 102c shown in
The processor 118 may be a general purpose processor, a special purpose processor, a conventional processor, a digital signal processor (DSP), a plurality of microprocessors, one or more microprocessors in association with a DSP core, a controller, a microcontroller, Application Specific Integrated Circuits (ASICs), Field Programmable Gate Array (FPGAs) circuits, any other type of integrated circuit (IC), a state machine, and the like. The processor 118 may perform signal coding, data processing, power control, input/output processing, and/or any other functionality that enables the WTRU 102 to operate in a wireless environment. The processor 118 may be coupled to the transceiver 120, which may be coupled to the transmit/receive element 122. While
The transmit/receive element 122 may be configured to transmit signals to, or receive signals from, a base station (e.g., the base station 114a) over the air interface 116. For example, in one embodiment, the transmit/receive element 122 may be an antenna configured to transmit and/or receive RF signals. In another embodiment, the transmit/receive element 122 may be an emitter/detector configured to transmit and/or receive IR, UV, or visible light signals, for example. In yet another embodiment, the transmit/receive element 122 may be configured to transmit and receive both RF and light signals. It will be appreciated that the transmit/receive element 122 may be configured to transmit and/or receive any combination of wireless signals.
In addition, although the transmit/receive element 122 is depicted in
The transceiver 120 may be configured to modulate the signals that are to be transmitted by the transmit/receive element 122 and to demodulate the signals that are received by the transmit/receive element 122. As noted above, the WTRU 102 may have multi-mode capabilities. Thus, the transceiver 120 may include multiple transceivers for enabling the WTRU 102 to communicate via multiple RATs, such as UTRA and IEEE 802.11, for example.
The processor 118 of the WTRU 102 may be coupled to, and may receive user input data from, the speaker/microphone 124, the keypad 126, and/or the display/touchpad 128 (e.g., a liquid crystal display (LCD) display unit or organic light-emitting diode (OLED) display unit). The processor 118 may also output user data to the speaker/microphone 124, the keypad 126, and/or the display/touchpad 128. In addition, the processor 118 may access information from, and store data in, any type of suitable memory, such as the non-removable memory 106 and/or the removable memory 132. The non-removable memory 106 may include random-access memory (RAM), read-only memory (ROM), a hard disk, or any other type of memory storage device. The removable memory 132 may include a subscriber identity module (SIM) card, a memory stick, a secure digital (SD) memory card, and the like. In other embodiments, the processor 118 may access information from, and store data in, memory that is not physically located on the WTRU 102, such as on a server or a home computer (not shown).
The processor 118 may receive power from the power source 134, and may be configured to distribute and/or control the power to the other components in the WTRU 102. The power source 134 may be any suitable device for powering the WTRU 102. For example, the power source 134 may include one or more dry cell batteries (e.g., nickel-cadmium (NiCd), nickel-zinc (NiZn), nickel metal hydride (NiMH), lithium-ion (Li-ion), etc.), solar cells, fuel cells, and the like.
The processor 118 may also be coupled to the GPS chipset 136, which may be configured to provide location information (e.g., longitude and latitude) regarding the current location of the WTRU 102. In addition to, or in lieu of, the information from the GPS chipset 136, the WTRU 102 may receive location information over the air interface 116 from a base station (e.g., base stations 114a, 114b) and/or determine its location based on the timing of the signals being received from two or more nearby base stations. It will be appreciated that the WTRU 102 may acquire location information by way of any suitable location-determination method while remaining consistent with an embodiment.
The processor 118 may further be coupled to other peripherals 138, which may include one or more software and/or hardware modules that provide additional features, functionality and/or wired or wireless connectivity. For example, the peripherals 138 may include an accelerometer, an e-compass, a satellite transceiver, a digital camera (for photographs or video), a universal serial bus (USB) port, a vibration device, a television transceiver, a hands free headset, a Bluetooth® module, a frequency modulated (FM) radio unit, a digital music player, a media player, a video game player module, an Internet browser, and the like.
The RAN 104 may include eNode-Bs 140a, 140b, 140c, though it will be appreciated that the RAN 104 may include any number of eNode-Bs while remaining consistent with an embodiment. The eNode-Bs 140a, 140b, 140c may each include one or more transceivers for communicating with the WTRUs 102a, 102b, 102c over the air interface 116. In one embodiment, the eNode-Bs 140a, 140b, 140c may implement MIMO technology. Thus, the eNode-B 140a, for example, may use multiple antennas to transmit wireless signals to, and receive wireless signals from, the WTRU 102a.
Each of the eNode-Bs 140a, 140b, 140c may be associated with a particular cell (not shown) and may be configured to handle radio resource management decisions, handover decisions, scheduling of users in the uplink and/or downlink, and the like. As shown in
The core network 106 shown in
The MME 142 may be connected to each of the eNode-Bs 142a, 142b, 142c in the RAN 104 via an S1 interface and may serve as a control node. For example, the MME 142 may be responsible for authenticating users of the WTRUs 102a, 102b, 102c, bearer activation/deactivation, selecting a particular serving gateway during an initial attach of the WTRUs 102a, 102b, 102c, and the like. The MME 142 may also provide a control plane function for switching between the RAN 104 and other RANs (not shown) that employ other radio technologies, such as GSM or WCDMA.
The serving gateway 144 may be connected to each of the eNode Bs 140a, 140b, 140c in the RAN 104 via the S1 interface. The serving gateway 144 may generally route and forward user data packets to/from the WTRUs 102a, 102b, 102c. The serving gateway 144 may also perform other functions, such as anchoring user planes during inter-eNode B handovers, triggering paging when downlink data is available for the WTRUs 102a, 102b, 102c, managing and storing contexts of the WTRUs 102a, 102b, 102c, and the like.
The serving gateway 144 may also be connected to the PDN gateway 146, which may provide the WTRUs 102a, 102b, 102c with access to packet-switched networks, such as the Internet 110, to facilitate communications between the WTRUs 102a, 102b, 102c and IP-enabled devices.
The core network 106 may facilitate communications with other networks. For example, the core network 106 may provide the WTRUs 102a, 102b, 102c with access to circuit-switched networks, such as the PSTN 108, to facilitate communications between the WTRUs 102a, 102b, 102c and traditional land-line communications devices. For example, the core network 106 may include, or may communicate with, an IP gateway (e.g., an IP multimedia subsystem (IMS) server) that serves as an interface between the core network 106 and the PSTN 108. In addition, the core network 106 may provide the WTRUs 102a, 102b, 102c with access to the networks 112, which may include other wired or wireless networks that are owned and/or operated by other service providers.
Hereafter, the terms “user device” and “client device” will be used interchangeably, and include a WTRU. Hereafter, the terms “content ID,” “content name,” and “object ID” will be used interchangeably.
In Internet, content is delivered to, (e.g., streamed to or downloaded by), an end device either directly from the source server, or indirectly from edge servers in a content distribution network (CDN). By deploying many edge servers strategically located at the edge of the Internet to form an overlay network, the CDN may reduce the transit traffic within the network and shorten the users' start-up delay. The CDN needs a dedicated infrastructure.
Peer-to-peer (P2P) content delivery has emerged as an alternative with a low cost server infrastructure. By utilizing participating users/peers resources, (e.g., upload bandwidth, storage space, processing power, etc.), the amount of available resources in a peer-to-peer system grow in proportion to the number of users/peers.
Web proxy caching is another method to reduce delay and bandwidth usage and balance the traffic load. Web cache proxies may be installed in the Internet service provider networks hierarchically or at the ends of high latency links. A web cache proxy stores copies of content passing through it. Subsequent requests for the stored content may be served from the web cache proxy when they are intercepted by the web cache proxy on route to the source server. Search engines and web browsers may also cache the contents.
Although overlay CDN services and P2P enables location diversity, these approaches incur several disadvantages. They are application-specific and need pre-planning and content management. CDN caching is generally based on a content service provider's business model. A P2P network hosts a limited number of pre-planned content items. They do not support automatic content discovery if a user only provides the content name or content identifier. Each CDN network or each P2P network uses different technologies to name, manage, and distribute the content, forming an isolated island. This makes it difficult to discover and retrieve the content seamlessly and efficiently across different CDN and P2P networks. Web proxy caching does not have the capability of resolving the content location based on the content name within a domain or across domains. A web proxy just forwards the content request toward the origin content server, (i.e., the destination address in the content request), if it does not have the requested content.
The user then clicks the link on the client device to retrieve the content, and the client device sends a query of the URL to a domain name server (DNS) to resolve the URL, and the DNS returns the IP address of the origin server to the client device by mapping the domain name of the origin server to its IP address using its database (203).
The client device then sends a content request command toward the origin server of the content (204). The origin server returns a redirect command or a basic index webpage with embedded objects (205). The redirect command and each of the embedded objects in the basic index page contains a URL. This URL points to the CDN provider to serve the content. If the content request command is intercepted by a web cache proxy and a match is found on the web cache proxy, the content may be served from the web cache proxy.
The client device sends a query of the URL to the DNS to resolve the URL received in the redirect command or the embedded objects in the basic index page and receives the IP address of the content server (206). The query is forwarded to the CDN provider's authoritative DNS, and the CDN provider's authoritative DNS allocates a content server for the requesting client device and returns the IP address of the content server to the client device. The client device then sends a request to the content server (207). The client retrieves the content from the content server (208).
In the above CDN approach, the URL represents the network location of the content, (i.e., the origin server of the content), not the content's own name or identifier. There may be a local copy of the requested content which has been cached by a server or a network element in the Internet service provider (ISP) network or by another CDN provider. This local copy may be closer to the client device or have a better network path to the client. However, with the above CDN approach, it is impossible to deliver the requested content to the client from the local copy.
The copy of the content stored in the CDN may not match the current operating conditions (e.g., bandwidth, processing capability, memory, battery power, or the like) of the client device so that the content may not be served in optimum quality. Another copy of the content stored in another location may match the current operating conditions of the client device. However, with the above CDN approach, it is impossible to deliver the requested content to the client from another location. Moreover, a CDN may only host certain content files due to resource limitation. It is desirable to interconnect the content service networks to reach more contents. However, there is no existing technology to support the interconnections or peering of two or more CDN networks.
For P2P content retrieval, a P2P client or a peer that wants to download a content object first obtains a descriptor file for the content. The descriptor file contains metadata about the content to be shared and about a tracker. The tracker is a machine that coordinates the content distribution. The content being distributed is divided into pieces. The metadata in the descriptor contains information about the content such as the piece size, the hash algorithm used to protect the content pieces, etc.
The peer connects to the tracker. The tracker tells the peer from which other peers to download the pieces of the content. The peer establishes connections with other peers and downloads the pieces of the content from other peers. It reports its download status to the tracker. As each peer receives a new piece of the content it becomes a source of that piece to other peers. The peers swarm the pieces of the content among themselves and share the task of distributing the content. A peer acts as a content server and a client.
In the above P2P approach, a peer must first obtain the descriptor file to retrieve the content. The descriptor file is distributed by conventional means, such as web, email, etc. Furthermore, a P2P network may host the retrieval of one or more specific content files depending on the descriptors. With the P2P approach, a client may not retrieve the content automatically by giving the content name or identifier. If a local copy of the content requested by a client is stored in a server or network element that does not join the P2P network, (e.g., belonging to an ISP, CDN provider, or another P2P network), with the above P2P method, it is impossible to deliver the requested content to the client from the local copy even if this local copy is closer to the client device or has a better network path to the client.
A content object, (e.g., data for a video clip, music, movie, document, file, etc.), is given a unique identifier (ID) or name, (hereinafter called “content ID”). The content ID allows decoupling of the content from its source locations so that more efficient and scalable content delivery mechanisms may be achieved. For example, content may be delivered from multiple servers along multiple paths to the destination and dynamic in-network caching may be performed to optimize bandwidth. Furthermore, the content ID may facilitate automatic content discovery. It enables interconnection or peering of multiple content service networks so that more content, and formats and types of a content object, and resources (servers, bandwidth, processing power, storage, etc.) may be available to the users. When a user device requests a content object by giving a content ID, the named content object may be automatically discovered and retrieved to the user device from the network, regardless of the specific physical location of the content.
Content may be named in different ways. For example, content may be named using a value generated by hashing the content file as a content ID, or using a certain naming method to generate the content ID. Alternatively, the content may be named similar to the International Standard Book Number (ISBN) or bar code.
In one embodiment, content may be identified by the following codes/fields: (country/group code)-(publisher code)-(title code)-(check digits)-(format/type code)-(timestamp)-(duration)-(format check digits).
The country/group code is a code assigned to a country or group of countries. The publisher code is a code assigned to a publisher of the content. A publisher may assign the title code to the content. The publisher may be an electronic content publisher, (e.g., Disney), or an electronic content creation service provider. A content creator may request an electronic content creation service provider to assign a title code to the content it created to publish it (this process may be done automatically through a web service).
The check digits may be used for error detection and/or correction, which may be computed from the digits in the country code, the publisher code, and the title code.
The format/type code represents the format or type of the content including file format, encoding format, resolution, etc., (e.g., doc, txt, h.264, mpeg video with 480×640 video resolution, etc.). The format/type code may be set to a wild card to represent any format/type of the content.
The timestamp field represents the starting time. The duration field represents the time duration of the video/audio file to play. The timestamp and duration fields represent the temporal domain reference of the content object.
The format check digits may be used for error detection and/or correction of the format/type code, the timestamp field, and the duration field, which may be computed from the digits in the format/type code, the timestamp field, and the duration field.
It should be noted that the above content ID format is an example, and one or more codes or fields may be absent or additional code(s) or field(s) may be added.
A user may initiate a session to retrieve the content using a content ID. If the content ID is unknown, a user may search the content ID based on its title, author, keywords, etc., or use other means to find the content ID.
A user device and a content provider may contain a content session control (CSC) user agent (UA). A CSC UA is a connection end-point used to create or receive CSC messages, publish or register the content, and manage a content retrieval session. A CSC UA may perform the role of a user agent client (UAC) that sends CSC requests or register its content IDs, or a user agent server (UAS) that receives the CSC requests and returns a CSC response as well as publish or advertise its content IDs. These roles of the UAC and the UAS may last for the duration of a CSC transaction. CSC UAs may communicate directly each other to discover and retrieve the content based on the content ID.
Although two or more CSC user agents may communicate without any intervening CSC infrastructure, this may be often limited and may not effectively support content retrieval service in large networks or across multiple networks. A set of control entities may be deployed in the network to support content discovery and retrieval services.
The control plane 510 may comprise a CSC proxy (CSC-P) 512, a CSC handler (CSC-H) 514, a CSC interrogator (CSC-I) 516, a CSC interconnect border controller (CSC-IBC) 518, a content name resolution handler (CNRH) 520, and a home subscriber server (HSS) 522.
A CSC-P 512 is an intermediary entity that may act as both a CSC server and a CSC client for the purpose of making requests on behalf of other clients. A CSC-P 512 is responsible for providing a secure edge between the user and the network. A CSC-P 512 may forward CSC messages to another entity such as CSC-H 514 and CSC-I 516 in the network for content retrieval. The forwarding may be based on a user agent ID, a message type, a content ID, query of a database, or the like. A CSC-P 512 may be used for user agent authentication and maintaining the security between the user agent and the network. For example, when the CSC-P 512 receives a CSC message from a CSC UA, it may authenticate the message and send the message to the CSC-I 516 or CSC-H 514 that is assigned to handle this CSC-UA during UA registration. Furthermore, a CSC-P 512 may interact with the data plane 530 for data plane resources authorization, (e.g., deep packet inspection, quality of service (QoS) control over the data plane 530, bandwidth management, policy control, security, and resource control, etc.). A UA may discover the CSC-P 512 using Dynamic Host Configuration Protocol (DHCP), proxy advertisement, or other means, or may be configured manually. There may be one or more CSC-Ps in a network.
A CSC-H 514 may handle user agent registration and bind the user location (e.g., the IP address of the device) and the user agent ID. The CSC-H 514 may be responsible for directing signaling requests to application servers so as to invoke services for users on the network 500. When the CSC-H 514 receives a CSC content request, it may invoke the application server(s) 552. The CSC-H 514 may obtain the information from the HSS 522 that identifies which application server(s) need to be invoked when the user agent makes a content request. For example, an application server for a requesting UA may control the advertisement insertion, control user privacy (e.g., an application server may hide the user ID and request content on behalf of the user), or control the user priority to obtain the content.
The CSC-H 514 may handle content registration. The CSC-H 514 may interact with the CNRH 520. The CSC-H 514 may accept the content registration requests from CSC user agents and place the content location information it receives in those content registrations into the CNRH 520.
The CSC-H 514 may provide content ID-based routing services, and resolve the content locations based on the requested content ID using CNRH 520. There may be one or more providers, hosts, sources, or servers of the requested content. The CSC-H 514 may perform a message routing function and decide to which content providers the CSC request message be forwarded to obtain the requested content. The routing may be based on the content ID, requesting user agent location, content location, content format, network conditions, and/or user device profiles. The CSC-H 514 may forward the CSC request message to one or more content providers. The content may be retrieved from one source or multiple sources.
When a CSC-H 514 with the requested content, (i.e., one or more of its associated UAs have the requested content), receives a CSC request message, the CSC-H 514 may invoke an application server(s), such as a content security server. At registration time, the CSC-H handling the requested content may learn the identity of the CSC-P associated with the UA providing content, and forward the CSC request message to the CSC-P. The CSC-P may then send the request to the content provider UA. The content provider UA may send a response and the response may be forwarded on the reverse path. In addition, the CSC-H may control the policy of the network operator through the MRF on the data plane. There may be one or more CSC-Hs or CSC-H instances in a network domain for load distribution and high availability.
A CSC-I 516 controls the process for assigning a CSC-H instance to a UA at registration time. When a UA registers, the registration message is sent to a CSC-I 516 by the CSC-P 512. The CSC-I 516 queries the HSS 522 and the HSS 522 assigns a CSC-H 514 to the user performing registration. The CSC-I 516 may be responsible for forwarding the signaling requests and responses from the originating UA's CSC-H to the destination UA's CSC-H, and is the forwarding point for messages (e.g., registration) from outside. The CSC-I 516 may query the HSS 522 to obtain the identity of the CSC-H to which messages addressed to a particular destination should be sent. There may be one or more CSC-Is or CSC-I instances in a network domain for load distribution and high availability.
The CNRH 520 maps content IDs to network locations/addresses. A content source with a CSC agent registers its hosted contents to the CNRH 520 through a CSC-H 514. A network node with a CSC agent, (such as a server, a router with caching capability, and an end device, etc.), may also register the content as it dynamically caches the content. The content source or the network node de-registers the content after the content is deleted and is not published anymore.
The CNRH 520 may be built upon a distributed database or a centralized database. When distributed database is used, the responsibility of receiving content registration and mapping content IDs to content URLs or content host network addresses is distributed to a set of CNRHs. The CNRHs may be arranged in a hierarchical manner as shown in
The CNRH 520 is different from a DNS. The CNRH 520 is responsible for translating the content IDs to content URLs or content provider's addresses, (e.g., “movie-foo” to a URL, www.host.com/movie-foo.mov). The DNS is to translate a domain name, (e.g., www.example.com to its network address, e.g., 192.0.32.10). The DNS may be extended to handle CNRH functions. An authoritative DNS server may be enhanced to be responsible for handling content registration information and translating content IDs to content URLs and content provider's network addresses for the contents hosted by the network nodes in its sub-domain and domain. After a CSC-H 514 receives a content registration request from a CSC agent in a network domain, it may contact the authoritative CNRH of the network domain, and place the information it receives in the registration into the authoritative CNRH.
Alternatively, the CNRHs may be distributed in a flat topology. As an example, a CSC-H 514 and a CNRH 520 may be integrated together. Each CSC-H 514 contains the CNRH function. The CSC-Hs exchange the content registration information. If a CSC-H 514 receives the content registrations from its CSC UAs, it may aggregate the content registration information and send the aggregated information to other CSC-Hs. Other CSC-Hs learn the content locations.
Alternatively, the CNRHs may be connected in a hybrid flat and hierarchical arrangement. For example, multiple CNRHs may form a distributed hash table (DHT) that maps content IDs to CNRH node ID in hash space and provides distributed directory as shown in
A fixed or mobile device may implement the CSC UA function and the CNRH function to serve the other agents to discover and retrieve the content it hosts.
A CSC IBC 518 may be used for content session control at the border with other domains. The CSC IBC 518 may be used to enforce policy on the interconnection media path with other domains.
The data plane 530 may comprise a media resource function (MRF) 532, an access border gateway (ABG) 534, an interconnect border gateway (IBG) 536, etc. The MRF 532 and the ABG 534 may perform content data flow manipulation and management, such as deep packet inspection and modification, content security, media relay, firewall traversal, announcement insertion, media transcoding, data path access control enforcement, etc.
The CSC-P 512, CSC-H 514, and CSC-I 516 are logic entities. They may be implemented on separate hosts or on the same host. The function components (i.e., CSC-P, CSC-H, and CSC-I) in CSC are different from the function components in IMS (i.e., proxy call session control function (P-CSCF), interrogating call session control function (I-CSCF), and serving call session control function (S-CSCF)) or Session Initiation Protocol (SIP). The CSC deals with content based on the content ID. The CSC decouples the content from the content host IP address and URL. The function components in CSC perform content provider registration and content location resolution based on the content ID. In contrast, the IMS and SIP function components have no functions to deal with content. The CSC agent registers the contents it hosts, caches, or wants to publish. An SIP agent or an IMS agent registers its device ID, current IP address and the URL for which it would like to receive calls. In CSC, a content host may publish the contents that it hosts using broadcast or multicast messages. Moreover, in CSC, the control message routing may be based the content ID, and a CNRH is used to map a content ID to one or more content host locations/network addresses. The SIP or IMS may be extended to support the content functions in accordance with embodiments disclosed herein.
The CNRH 620 may be co-located or integrated with enhanced IMS CSCF, implemented as an IMS application server (AS). Alternatively, the CNRH 620 may be implemented by enhancing DNS/Electronic Number Mapping System (ENUM) 622 with CNRH functions.
The CSC-H may invoke an application server, (e.g., an advertisement control server or a user privacy server) (706). The application server sends signaling back to the CSC-H (708). The CSC-H communicates with the CNRH for content location resolution (710). The CNRH looks up its database based on the content request information, such as a content ID (712), and returns the identities of one or more potential content providers for serving the content request as well as other information (such as the provider physical location and retrieval cost, etc.) (714).
The CSC-H uses the information returned from the CNRH to select and determine the content provider(s) to serve this CSC content request (716). Alternatively, the CSC-H may forward the information returned from the CNRH and other content request information to a content session control application server (CSC-AS) (now shown). The CSC-AS may select and determine the content provider(s) to serve this CSC content request, and inform its decision to the CSC-H. The CSC-AS may perform the pre-admission control for the session. The CSC-AS may also determine the session policy, security parameters, resource control parameters, and charging for this content session. The parameters may be used by the data plane components to manipulate the media streams and enforce the policy.
The CSC-H sends a content request to the CSC-I (718). The CSC-I queries the HSS to learn the identity of a CSC-H assigned to the content provider (720, 722), and forwards the content request message to the CSC-H for the content provider (724).
The CSC-H handling the content provider may invoke an application server(s), (e.g., a content security server or a content charging server) (726). The AS sends signaling back to the CSC-H (728). The CSC-H handling the content provider forwards the content request message to the CSC-P for the content provider (730).
The CSC-P for the content provider then forwards the content request message to the content provider UA (732). The content provider UA responds the CSC content request with the CSC content request reply (CREP) message (734). The CSC content request reply message contains the information how to set up media content session, such as the protocol and URL for retrieving the media content. The CSC content request reply message is sent to the CSC-P for the content provider.
The CSC-P for the content provider forwards the CSC content request reply message to the CSC-H handling the content provider (736). The CSC-P for the content provider may interact with the ABG to allocate resources for data flow manipulation and management at the content provider side (737). The CSC-H for the content provider may invoke an application server(s) (738). The AS sends signaling back to the CSC-H (740).
The CSC-H for the content provider sends the CSC content request reply to the CSC-I (742). The CSC-I queries the HSS to learn the identity of the CSC-H assigned to the requesting UA (744, 746), and forwards the content request reply to the CSC-H for the requesting UA (748).
The CSC-H for the requesting UA may invoke an application server(s) (750). The AS sends signaling back to the CSC-H (752). The CSC-H for the requesting UA forwards the CSC content request reply message to the CSC-P for the requesting UA (754).
The CSC-P interacts with the ABG on the data plane to allocate resources for data flow management such as deep packet inspection, QoS control, bandwidth management, etc. (756). The CSC-P forwards the CSC content request reply message to the requesting user agent (758). The requesting user device retrieves the content based on the information in the content request reply message (760).
It should be noted that the requesting user agent and the content provider may have the same CSC-H and CSC-P or different CSC-Hs and CSC-Ps.
A content cache/server that has content objects sends a message (e.g., a SIP PUBLISH or REGISTER message) to its CNRH to register the content objects via an enhanced IMS core network (eIM CN), (i.e., eP-CSCF, eI-CSCF, eS-CSCF) (802, 804). The CNRH may respond to the reception of the PUBLISH or REGISTER message by sending a RESPONSE message to the content cache/server via the eIM CN entities (806, 808). This operation may be repeated when a new content object becomes available at the content cache/server.
Networks may insert a middle box(es) to provide services, and control content and service access.
Two or more content service providers or ISPs may interconnect or peer their network domains to make more content objects and formats as well as resources available. The peering may enable efficient and scalable communication mechanisms, for example, to move content from multiple sources along multiple paths to the destination and automatic caching to optimize bandwidth.
The home CSC-H may invoke an application server(s), (e.g., an advertisement control server or a user privacy server) (1606). The application server may send signaling back to the home CSC-H (1608). The home CSC-H communicates with the home CNRH in domain 1 (1610). The home CNRH returns the identities of one or more potential content providers for serving this content request as well as other information, such as the provider physical location and retrieval cost, etc. by looking up its data base according to the content request information such as content ID (1612). The home CSC-H uses the information returned from the home CNRH to select and determine the content provider(s) to serve this CSC content request (1614). The home CSC-H may select the content provider in a target domain (domain 2 in this example) to serve this CSC content request and the way to route the content request message for establishing the content retrieval session. Alternatively, the home CSC-H may forward the information returned from the home CNRH and other content request information to a home CSC-AS (not shown). The home CSC-AS may select and determine the content provider(s) to serve this CSC content request and inform its decision to the home CSC-H. The home CSC-AS may perform the pre-admission control for the session. The home CSC-AS may exchange and negotiate the session policy, security parameters, resource control parameters, and charging for this content session with the remote CSC-AS through the CSC-H if the content provider is in a remote domain. The parameters may be used by the data plane components to manipulate the media streams and enforce the policy.
The home CSC-H sends the CSC request to the home CSC-IBC in the home domain if the content provider is in another domain (1616). The home CSC-IBC may perform session border control (1618). The home CSC-IBC sends the CSC content request to the remote CSC-IBC in the target domain (domain 2 in this example) (1620).
The remote CSC-IBC in the target domain processes the CSC request for security and policy control, admission control, and media plane resource authorization (e.g., QoS control, policy enforcement, bandwidth management, etc.) (1622). The remote CSC-IBC may determine the specific content provider to serve this content request by interacting with the remote CNRH (since the internal network may be hidden from the outside world) (1624, 1626). Alternatively, the remote CSC-IBC may forward the information returned from remote the CNRH and other content request information to a remote CSC-AS (not shown). The remote CSC-AS may determine the content provider to serve this CSC content request and inform its decision to the remote CSC-IBC. The remote CSC-AS may also perform the admission control for the session. The remote CSC-AS may also exchange and negotiate the session policy, security parameters, resource control parameters, and charging for this content session with the home CSC-AS through the CSC-IBC.
The remote CSC-IBC sends the CSC content request to the remote CSC-I in the target domain (1628). The remote CSC-I queries the remote HSS in the target domain to learn the identity of the remote CSC-H assigned to the content provider (1630, 1632), and forwards the CSC content request message to the remote CSC-H for the content provider (1634).
The remote CSC-H handling the content provider may invoke an application server(s), for example, a content security server or a content charging server (1636). The application server sends signaling back to the remote CSC-H (1638). The remote CSC-H handling the content provider forwards the CSC request message to the remote CSC-P for the content provider (1640). The remote CSC-P then forwards the CSC request message to the content provider UA (1642).
The content provider UA in the remote domain responds the CSC content request with the CSC content request reply (CREP) message (1644). The CSC content request reply message may contain information how to set up media content session, such as the protocol and URL for retrieving the media content. The CSC content request reply message is sent to the remote CSC-P for the content provider.
The remote CSC-P for the content provider forwards the CSC content request reply message to the remote CSC-H handling content provider (1646). The remote CSC-P may interact with the ABG to allocate resource for data flow manipulation and management in the remote domain (1648).
The remote CSC-H may invoke an application server(s) (1650). The application server sends signaling back to the remote CSC-H (1652). The remote CSC-H for the content provider sends the CSC content request reply to the remote CSC-IBC (1654). The remote CSC-IBC forwards the request reply to the home CSC-IBC (1656). The remote CSC-IBC may interact with the remote CSC-IBG to allocate resource and policy control in the data plane (1658).
The home CSC-IBC sends the request reply to the home CSC-I (1660). The home CSC-IBC may interact with the home CSC-IBG to allocate resource and policy control in the data plane (1662). The home CSC-I queries the home HSS to learn the identity of the home CSC-H assigned to the requesting UA (1664, 1666), and forwards the content request reply to the home CSC-H for the requesting user agent (1668).
The home CSC-H for the requesting UA may invoke an application server(s) (1670). The application server sends signaling back to the home CSC-H (1672). The home CSC-H for the requesting UA forwards the CSC content request reply message to the home CSC-P for the requesting UA (1674).
The home CSC-P forwards the CSC content request reply message to the requesting user agent (1676). The CSC-P may interact with the access border gateway on the data plane to allocate resource for data flow management such as deep packet inspection, QoS control, bandwidth management, etc. (1678). The requesting user device retrieves the content based on the information in the content request reply message (1680).
A CNRH forwards the content request (e.g., SIP INVITE) toward the closest copy (host) across network domains, or toward the copy with minimum cost, or toward multiple copies according to its policy. The host of the content object copy may send a response message (e.g., SIP 200 OK) upon receiving the content request message (e.g., SIP INVITE). The instruction for obtaining the content object and the session description may be included in the response message. The response message is forwarded back to the origin of the content request across the network domains. A content download or streaming data session is then established and the data packet exchanges are performed. If a CNRH does not have the location information for the requested content object upon reception of a content request, it forwards the content request to its parent CNRH. If the content request travels up to the highest-level/root CNRH but does not find the location information of the requested content object, the root CNRH may respond an error message. The error message is forwarded back to the origin of the content request across the network domains.
In an alternative embodiment, the CNRHs may form a hierarchical DHT or another topology. The content publish messages propagate among the CNRHs to publish the location information of the content objects across network domains. The content request message (e.g., SIP INVITE) is forwarded among the CNRHs to locate the host of a copy of the requested content object across the network domains. The inter-domain SIP messages go through the IMS and IBCF/SBC in each domain to enforce security and inter-domain policies.
1. A method for discovering and retrieving content.
2. The method of embodiment 1 comprising receiving a content request from a client device.
3. The method of embodiment 2 wherein the content request includes a content ID that uniquely identifies a content object.
4. The method as in any one of embodiments 2-3, further comprising resolving the content ID with a CNRH to obtain identity information of at least one content provider for serving the content request.
5. The method of embodiment 4 further comprising selecting a content provider.
6. The method of embodiment 5 further comprising forwarding the content request to the selected content provider.
7. The method as in any one of embodiments 2-6, further comprising invoking an application server in response to receipt of the content request.
8. The method as in any one of embodiments 2-7, further comprising querying a home subscriber server to determine a network entity serving the selected content provider, wherein the content request is forwarded to the determined network entity.
9. The method as in any one of embodiments 2-8, further comprising receiving a content request reply containing information how to set up a media content session for retrieving the content object.
10. The method of embodiment 9 further comprising forwarding the content request reply to the client device.
11. The method as in any one of embodiments 9-10, further comprising querying a home subscriber server to determine a network entity serving the client device, wherein the content request reply is forwarded to the determined network entity.
12. The method as in any one of embodiments 9-11, further comprising interacting with a network entity on a data plane to allocate resources for data flow management upon receipt of the content request reply.
13. The method as in any one of embodiments 2-12, further comprising sending the content request to an IBC entity in a home domain of the client device on a condition that the content provider is not located in the home domain.
14. The method of embodiment 13 further comprising performing a session border control and forwarding the content request to an IBC entity in a target domain where the content provider is located.
15. The method as in any one of embodiments 4-14, further comprising forwarding the information received from the CNRH to an application server, wherein the application server selects the content provider for serving the content request.
16. The method as in any one of embodiments 2-15, wherein the content request is routed to the selected content provider via IMS control plane entities.
17. The method of embodiment 16 further comprising a session control entity in IMS receiving the content request.
18. The method of embodiment 17 further comprising the session control entity querying the CNRH.
19. The method of embodiment 18 further comprising the session control entity receiving the identity information from the CNRH.
20. The method of embodiment 19 further comprising the session control entity sending the content request toward the content provider.
21. The method of embodiment 16 further comprising a session control entity in IMS receiving the content request.
22. The method of embodiment 21 further comprising the session control entity forwarding the content request to the CNRH.
23. The method of embodiment 22 further comprising the CNRH selecting the content provider and sending the content request toward the selected content provider.
24. The method as in any one of embodiments 2-23, further comprising the CNRH receiving a registration message for the content object from a content provider.
25. The method of embodiment 24 further comprising the CNRH registering the content object.
26. The method as in any one of embodiments 24-25, further comprising the CNRH sending a subscribe message to the content provider to subscribe to an event of the content provider.
27. The method of embodiment 26 further comprising the CNRH receiving the registration message on a condition that a subscribed event occurs.
28. A method for discovering and retrieving content.
29. The method of embodiment 28 comprising sending a content request including a content ID.
30. The method of embodiment 29 wherein the content ID uniquely identifies a content object and is resolved via a CNRH to identity information of at least one content provider for serving the content request.
31. The method as in any one of embodiments 29-30, further comprising receiving a content request reply.
32. The method of embodiment 31, further comprising setting up a media session and retrieving the content object based on the information in the content request reply.
33. The method as in any one of embodiments 29-32, further comprising receiving a content advertisement message indicating contents to publish.
34. The method of embodiment 33, further comprising determining whether the contents in the content advertisement message matches a profile set by a user, wherein the content request is sent on a condition that the contents in the content advertisement matches the profile.
35. A network for supporting discovery and retrieval of content based on a content ID.
36. The network of embodiment 35 comprising a CNRH configured to resolve a content ID to identity information of at least one content provider for serving a content request.
37. The method of embodiment 36 further comprising a network entity configured to receive from a client device the content request including the content ID, select a content provider for serving the content request, and forward the content request to the selected content provider.
38. The network of embodiment 37, wherein the network entity is an entity in an IMS control plane.
39. The network as in any one of embodiments 37-38, wherein the network entity is further configured to invoke an application server in response to receipt of the content request.
40. A user device for discovering and retrieving content.
41. The user device of embodiment 40 comprising a processor configured to send a content request including a content ID, the content ID uniquely identifying a content object and being resolved via a CNRH to identity information of at least one content provider for serving the content request.
42. The user device of embodiment 41, wherein the processor is further configured to receive a content request reply, and set up a media session and retrieve the content object based on the information in the content request reply.
43. The user device as in any one of embodiments 41-42, wherein the processor is further configured to receive a content advertisement message indicating contents to publish, and determine whether the contents in the content advertisement message matches a profile set by a user, wherein the content request is sent on a condition that the contents in the content advertisement matches the profile.
Although features and elements are described above in particular combinations, one of ordinary skill in the art will appreciate that each feature or element can be used alone or in any combination with the other features and elements. In addition, the methods described herein may be implemented in a computer program, software, or firmware incorporated in a computer-readable medium for execution by a computer or processor. Examples of computer-readable media include electronic signals (transmitted over wired or wireless connections) and computer-readable storage media. Examples of computer-readable storage media include, but are not limited to, a read only memory (ROM), a random access memory (RAM), a register, cache memory, semiconductor memory devices, magnetic media such as internal hard disks and removable disks, magneto-optical media, and optical media such as CD-ROM disks, and digital versatile disks (DVDs). A processor in association with software may be used to implement a radio frequency transceiver for use in a WTRU, UE, terminal, base station, RNC, or any host computer.
This application claims the benefit of U.S. provisional application Nos. 61/435,968 filed Jan. 25, 2011 and 61/533,593 filed Sep. 12, 2011, and PCT Application No. PCT/US2012/022493, filed Jan. 25, 2012, the contents of which are hereby incorporated by reference.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US12/22493 | 1/25/2012 | WO | 00 | 12/16/2013 |
Number | Date | Country | |
---|---|---|---|
61435968 | Jan 2011 | US | |
61533593 | Sep 2011 | US |