PCP Working Group | H. Moustafa |
Internet-Draft | D. Moses |
Intended status: Standards Track | Intel Corporation |
Expires: May 14, 2015 | M. Boucadair |
France Telecom | |
November 10, 2014 |
PCP Extension for Signaling Feedback Information from the End-User Application to the Application Sever and to the Network
draft-mou-pcp-application-network-feedback-02
Nowadays users consumption style for video and multimedia applications is strongly changing. Users are consuming content through multi-screen and are heavily counting on wireless and mobile devices for video streaming and interactive video and multimedia applications. This necessitates more intelligence in the service and the network infrastructure to better suit a differentiated users consumption style, which can be achieved through having: (i) a knowledge in the network and service platform about the available device and network conditions for the end-user and (ii) a knowledge in the network about the content requirements in terms of devices capabilities and network resources for content stored either in the network or in the application server. To obtain such knowledge with no need for changing the current infrastructure and in a generalized way to all applications, feedback/notification mechanisms between the end-user application, the network and the service platform is needed to provide information helping the content delivery and adaptation decisions. This document is investigating such application-agnostic track.
This document extends the Port Control Protocol (PCP) RFC 6887 [RFC6887] to allow: (i) the users application to notify the network and application server about its available resources in terms of devices capabilities and network conditions as well as information about the user (e.g., location, mobility status) and (ii) the application server to notify the network about the requirements of the content it stores in terms of devices and network resources. A new PCP option, denoted the FEEDBACK, is specified to allow such feedback notification signaling. This option is used with both PEER and MAP Opcodes.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on May 14, 2015.
Copyright (c) 2014 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
Nowadays, Internet traffic includes huge amount of video traffic which is expected to highly dominate the Internet traffic in the coming years. The users consumption style for video services is strongly evolving towards a user-centric model enabling video services access based on users profiles and making receiving device (e.g., Laptops, tablets, smartphones, and future devices models) constitute the majority of end-user devices for video services through plenty of services over the Internet.
Although this big evolution, the network and service infrastructure are not optimized enough to handle the content delivery and adaptation function of the network resources, devices resources, application and content requirements. As a result, Quality of Experience (QoE) for video services and multimedia applications can not be guaranteed in some situations.
This document defines an extension to the Port Control Protocol (PCP) RFC 6887 [RFC6887] allowing: (i) the end-user application to signal in real-time to the network and application server information about its available device capabilities and network connectivities (e.g., support to different content bitrates, buffering status as an indication of the network connectivity level) as well as other useful context information (e.g., location, mobility status) and (ii) the application server to signal in real-time to the network the requirement of the content it stores in terms of devices and network resources. The extension defines a new PCP option for the existing PEER and MAP OpCodes: FEEDBACK Option for signaling information between the end-users application, the network and the application server.
Motivations to undertake this effort are discussed in Section 3 through a number of use cases, while justifications for the use of PCP are elaborated in Section 4.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119].
The new model for video services consumption over mobile and wireless networks creates the need for feedback information between the end-user application, the network and the service platform in real-time. This helps optimizing the content for device/network resources on one hand and end-user QoE and battery experience on the other hand. In this view more intelligence needs to be considered in the network. A way to do that is through having several service functions in the network middle boxes on the path between the end-user and the application server, as shown in Draft [ServiceFunctions], that could be collocated with the NAT function or not. Examples of service functions that we consider to better manage the video delivery are: video optimization function (including transcoding), caching capabilities, TCP optimizer, video controller allowing for example content recommendation or intelligent scheduling in the case of cellular networks. The following subsections present a use-case on video delivery optimization using PCP signaling to provide feedback information between the end-user application, the network and the service platform:
In this use-case, the end-users device is the host implementing the PCP client and a middle box network node in the network (e.g. edge router, home gateway or any cache node close to the user) is the PCP server. This middle box node can store a copy of the content or can be just a content relay from the application server to the end-user.
In this use-case, the end-users device implements the PCP server and the external display adaptor implements the PCP client. The former can be a PC, tablet or Smartphone and the latter is the TV adaptor/box receiving the content from the end-user device. The end user-device mirrors the content to the TV screen through wireless WiDi, Miracast, or Airplay.
The following are some examples on how to optimize the content for device and network resources on one hand and end-user QoE and battery experience on the other hand.
The use of PCP to signal feedback/notification between the end-users application, the network and service platform in real-time is motivated by the following: In the Port Control Protocol (PCP) specification RFC 6887 [RFC6887], PCP is viewed as a request/response protocol and also as a hint/notification protocol between a PCP client and a PCP server. Message flows in PCP are viewed as independent streams carrying information between the PCP client and the PCP server, in which the PCP client sends a stream of hints indicating to its server its mapping status and the PCP server sends to the client a notification informing the client on the actual state of its mapping. In this view of the protocol, PCP can be extended to carry more mapping information than the IP internal versus external addresses. Draft [Flowdata] is an example of the use of PCP for signaling by the client the flow characteristics to the network and signaling by the network its ability to accommodate that flow back to the client.
In addition, PCP allows learning and influencing the mapping lifetime, which helps reducing network bandwidth, overload on application servers and middle boxes and battery resources for wireless and mobile devices. This makes PCP suitable for conveying feedback information in our use-cases in real-time and resource wise way.
Further advantages for PCP motivating its use are as follows:
This document presents an extension to PCP through the definition of FEEDBACK option in PCP. The FEEDBACK option aims to signal feedback information between the end-user application, the network and service platform to help optimizing the network and devices resources and enhancing the users experience. This feedback mechanism makes also use of the PCP FLOWDATA option [Flowdata]. This means that the PCP client sends both FLOWDATA and the FEEDBACK options in the same requests.
The information signaled in the FEEDBACK Option may include the screen size, screen resolution and battery level as device capabilities information and the users location, environment type and mobility status as context information on the user side. This information is signaled once at the beginning of the session and can be updated upon variation. Following the information signaling, the PCP server uses the FEEDBACK option to signal its ability of providing content with characteristics matching the device and network resources as well as the user context. This information will be used by the application server and by the network (through the middle box network nodes having service functions) for optimized content adaptation as explained in Section 3.
The FEEDBACK option does not make any assumption on the presence of NAT and/or firewall. In particular, PCP-based mechanism to instantiate state in an upstream NAT, firewall and any other flow-aware device are not impacted by the use of FEEDBACK option.
The PCP client is implemented at the end-user device and the application server (content server), and the PCP server is implemented at the middle box network node storing the content and the application server. The PCP client may be configured with multiple IP addresses; each of them pointing to a distinct PCP server. The PCP client will contact all these PCP server in parallel as discussed in [I-D.ietf-pcp-server-selection].
A PCP Proxy [PCPProxy] functionality can be enabled in intermediate nodes (e.g., Customer Premise Equipment (CPE)) on the path between the PCP client and the PCP server.
Upon receipt of the FEEDBACK option by the PCP Server, its content is passed to the Application Server that decides whether an action is needed to serve the requesting client to better accommodate its resources and conditions.
The procedure for generating a request that includes the FEEDBACK option, handling a request that includes the FEEDBACK option, and generating a response to a request that includes the FEEDBACK option is similar to the behavior specified in [Flowdata].
Triggers to generate a request that capture the network conditions and device recourses in a FLOWDATA and FEEDBACK options are local to the application. How the application server or network middle boxes makes use of the content of the FLOWDATA and FEEDBACK options is also local to the PCP Server and to each the decision-making process at the Application Server side or network middle box node.
The PCP client follows the steps of generating the PEER and MAP opcodes request and response as described in [Flowdata]. The FEEDBACK option is included in the request and response according to the format described in this section.
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Option code=TBA|Reserved Option| Option Length= 16 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SRPW | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SRPH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BLS | SSz |MStat| Location | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: FEEDBACK Option Request
The FEEDBACK option request has the following format:
The FEEDBACK option response has the following format:
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Option code=TBA|Reserved Option| Option Length= 16 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PCP Server Notification | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SRPW | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SRPH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BLS | SSz |MStat| Location | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: FEEDBACK Option Response
The field PCP Server Notification shows the response status for the sent request:
The content of the remaining fields are echoed from the request.
The security consideration for PCP in RFC 6887 [RFC6887] and the PCP client authentication [PCPAuthentication] are sufficient to ensure security and host authorization for the proposed PCP extension in this document.
IANA is requested to assign a new PCP option called FEEDBACK in the IANA registry for PCP [pcp-iana].
Thanks for Wu-Chi Feng and Muthaiah Venkatachalam who provided valuable comments on this work. And thanks for Tirumaleswar Reddy for all his comments and guidelines to prepare this version of the draft.
[I-D.ietf-pcp-server-selection] | Boucadair, M., Penno, R., Wing, D., Patil, P. and T. Reddy, "PCP Server Selection", Internet-Draft draft-ietf-pcp-server-selection-06, August 2014. |
[RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. |
[RFC6887] | Wing, D., "Port Control Protocol (PCP)", RFC 6887, April 2013. |
[Flowdata] | Wing, D., Penno, R. and T. Reddy, "PCP Flowdata Option", Internet-Draft draft-wing-pcp-flowdata-00, July 2013. |
[I-D.ietf-httpbis-http2] | Belshe, M., Peon, R. and M. Thomson, "Hypertext Transfer Protocol version 2", Internet-Draft draft-ietf-httpbis-http2-15, October 2014. |
[PCPAuthentication] | Wasserman, M., Hartman, S. and D. Zhang, "Port Control Protocol (PCP) Authentication Mechanism", Internet-Draft draft-ietf-pcp-authentication-02, October 2013. |
[PCPProxy] | Boucadair, M., Penno, R. and D. Ding, "Port Control Protocol (PCP) Proxy Function", Internet-Draft draft-ietf-pcp-proxy-03, June 2013. |
[RFC2616] | Fielding, R., "Hypertext Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. |
[RFC3840] | Rosenberg, J., "Indicating User Agent Capabilities in Session Initiation Protocol (SIP)", RFC 3840, August 2004. |
[RFC4566] | Handley, M., "SDP: Session Description Protocol", RFC 4566, July 2006. |
[ServiceFunctions] | Liu, W., Li, H., Huang, O., Boucadair, M., Leymann, N., Cao, Z. and J. Hu, "Service Function Chaining Use Cases", Internet-Draft draft-liu-sfc-use-cases-00, October 2013. |
Some existing protocols can convey devices characteristics and information on the user, however with limited applicability. Examples are: