ALTO Cost Calendar
draft-randriamasy-alto-cost-calendar-04
The information below is for an old version of the document.
Document | Type |
This is an older version of an Internet-Draft whose latest revision state is "Replaced".
|
|
---|---|---|---|
Authors | Sabine Randriamasy , Y. Richard Yang , Qin Wu , Deng Lingli , Nico Schwan | ||
Last updated | 2015-07-06 | ||
Replaced by | draft-ietf-alto-cost-calendar, draft-ietf-alto-cost-calendar, RFC 8896 | ||
RFC stream | (None) | ||
Formats | |||
Additional resources | |||
Stream | Stream state | (No stream defined) | |
Consensus boilerplate | Unknown | ||
RFC Editor Note | (None) | ||
IESG | IESG state | I-D Exists | |
Telechat date | (None) | ||
Responsible AD | (None) | ||
Send notices to | (None) |
draft-randriamasy-alto-cost-calendar-04
quot; : [true], "pids" : { "srcs" : [ "PID1", "PID2" ], "dsts" : [ "PID1", "PID2", "PID3" ] } } HTTP/1.1 200 OK Content-Length: [TODO] Content-Type: application/alto-costmap+json { "meta" : { "dependent-vtags" : [...], "cost-type" : {"cost-mode" : "numerical", "cost-metric" : "Availbandwidth"}, "calendar-response-attributes" : [ "calendar-start-time" : Tue, 1 Jul 2014 13:00:00 GMT, "time-interval-size" : "2 hour", "numb-intervals" : 12 ] }, "cost-map" : { "PID1": { "PID1": [v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12], "PID2": [v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12], "PID3": [v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12] }, "PID2": { "PID1": [v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12], "PID2": [v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12], "PID3": [v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12] } } } Randriamasy, et al. Expires January 7, 2016 [Page 20] Internet-Draft ALTO Cost Calendar July 2015 4.2. Calendar extensions in the Endpoint Cost Map Service This document extends the Endpoint Cost Service, as defined in {11.5.1} of [RFC7285], by adding new input parameters and capabilities, and by returning JSONArrays instead of JSONNumbers as the cost values. The media type (11.5.1.1} and HTTP method (11.5.1.2} are unchanged. 4.2.1. Calendar specific input in Endpoint cost map requests The extensions to the requests for calendared Endpoint Cost Maps are the same as for the Filtered Cost Map Service, previously specified in section XXXX. The ReqEndpointCostMap object for a Calendared ECM request will have the following format: object { CostType cost-type; [JSONBoolean calendared<1..*>;] EndpointFilter endpoints; } ReqEndpointCostMap; object { [TypedEndpointAddr srcs<0..*>;] [TypedEndpointAddr dsts<0..*>;] } EndpointFilter; 4.2.2. Calendar attributes in the Endpoint Cost Map responses The "meta" field of a Calendared Endpoint Cost map response MUST include at least: o the "meta" fields specified for these Endpoint Cost service responses, as specified in RFC 7285 if the ALTO Client supports costs for one Cost Type at a time only, * "cost-type" field. o the "meta" fields specified for these information service responses, as specified in RRRR [draft-ietf-multi-cost-alto] if the ALTO Client supports Multi-Cost capabilities, that is: * "multi-cost-types" field. The "meta" member of a Calendared Endpoint Cost Map response MUST include the same addifional member "calendar-response-attributes" as Randriamasy, et al. Expires January 7, 2016 [Page 21] Internet-Draft ALTO Cost Calendar July 2015 specified for the Filtered Cost Map Service. If the client request does not provide member "calendared" or if it provides it with a value equal to 'false', then the ALTO Server response is exactly as specified in {11.5.1.6} of [RFC7285]. If the client provides member "calendared" with a value equal to 'true' in the input parameters, the Server response is changed as follows: o the "meta" member has one additional field "CalendarResponseAttributes", as specified for the Filtered Cost Map Service, o the calendared costs are JSONArrays instead of JSONNumbers for the legacy ALTO implementation. All arrays have a number of values equal to 'number-of-intervals'. 4.2.3. Example transaction for the ECS with a "periodic" routingcost Calendar Let us assume an Application Client located in an end sytem with limited resources and having an access to the network that is either intermittent or provides an acceptable quality in limited but possibly predictable time periods. Therefore, it needs to both schedule its resources demanding networking activities and minimize its ALTO transactions. The Application Client has the choice to trade content or resources with a set of Endpoints of moderate 'routingcost', and needs to decide with which Endpoint it will trade at what time. For instance, one may assume that the Endpoints are spread on different time-zones, or have intermittent access. In this example, the 'routingcost' is assumed to be the time sentitive decision metric, with values provided in the ALTO Calendar Mode. The ALTO Client embedded in the Application Client queries an ALTO Calendar on 'routingcost' and will get the Calendar covering the 24 hours time period "containing" the date and time of the ALTO client request. For Cost Type 'calendar-routing', this example ALTO Server has defined 3 different daily patterns each represented by a Calendar, to cover the week of Monday June 30th at 00:00 to Sunday July 6th 23:59: - C1 for Monday, Tuesday, Wednesday, Thursday, (week days) - C2 for Saturday, Sunday, (week end) - C3 for Friday (maintenance outage on July 4, 2014 from 02:00:00 GMT to 04:00:00 GMT, or big holiday such as New Year evening). Randriamasy, et al. Expires January 7, 2016 [Page 22] Internet-Draft ALTO Cost Calendar July 2015 The presence of attributes "repeated" and "calendar-start-time" allows an ALTO client to fetch 3 Calendars instead of 7 and thus to reduce the volume of on-the-wire data exchange, In the following example transaction, the ALTO Client sends its request on Tuesday July 1st 2014 at 13:15. It will this get the value pattern "C1" , valid from Monday at 00:00:00 until Thursday at 23:59:59, thus repeated 4 times. Randriamasy, et al. Expires January 7, 2016 [Page 23] Internet-Draft ALTO Cost Calendar July 2015 POST /calendar/endpointcost/lookup HTTP/1.1 Host: alto.example.com Content-Length: [TODO] Content-Type: application/alto-endpointcostparams+json Accept: application/alto-endpointcost+json,application/alto-error+json { "cost-type" : {"cost-mode" : "numerical", "cost-metric" : "routingcost"}, "calendared" : [true], "endpoints" : { "srcs": [ "ipv4:192.0.2.2" ], "dsts": [ "ipv4:192.0.2.89", "ipv4:198.51.100.34", "ipv4:203.0.113.45" ] } } HTTP/1.1 200 OK Content-Length: [TODO] Content-Type: application/alto-endpointcost+json { "meta" : { "cost-type" : {"cost-mode" : "numerical", "cost-metric" : "routingcost"}, "calendar-response-attributes" : [ { "calendar-start-time" : Mon, 30 Jun 2014 00:00:00 GMT, "time-interval-size" : "1 hour", "numb-intervals" : 24, "repeated": 4 } ], } // end meta "endpoint-cost-map" : { "ipv4:192.0.2.2": { "ipv4:192.0.2.89" : [v1, v2, ... v24], "ipv4:198.51.100.34" : [v1, v2, ... v24], "ipv4:203.0.113.45" : [v1, v2, ... v24] } } } Randriamasy, et al. Expires January 7, 2016 [Page 24] Internet-Draft ALTO Cost Calendar July 2015 4.2.4. Example transaction for the ECS with a calendar on both routingcost and latency In this example, it is assumed that the ALTO Server implements multi- cost capabilities, as specified in [draft-ietf-alto-multi-cost] . That is, an ALTO client can request and receive values for several cost types in one single transaction. An illustrating use case is a path selection done on the basis of 2 metrics: routing cost and latency. The assumptions on the routing cost calendars are the same as in the previous example. For metric "latency", the calendar attributes in the IRD indicate that the values are updated every hour and each one applies to an interval of 5 minutes. The Server response provides value 1 for attribute 'repeated' it is assumed that the current calendar values are repeated 1 time, that is, in the next hour the calendar will have different values. In the following example transaction, the ALTO Client sends its request on Tuesday July 1st 2014 at 13:15. It is assumed that it does this multi-cost request for the first time. When receiving the response, the client sees that the calendar for latency will change in the next hour where as the calendar values for routing cost will be the same for the next 3 days. Therefore, in its next requests until the routing cost calendar is expected to change, the client will only need to request a calendar for 1 single metric which is latency. Without the ALTO Calendar extensions, the ALTO client would have no clue on the dynamicity of the metric value change and would spend needless time requesting values at an inappropriate pace. In addition, without the Multi-Cost ALTO capabilities, the ALTO client would duplicate this waste of time as it would need to send one request per cost metric. POST calendar/endpointcost/lookup HTTP/1.1 Host: alto.example.com Content-Length: [TODO] Content-Type: application/alto-endpointcostparams+json Accept: application/alto-endpointcost+json,application/alto-error+json { "multi-cost-types" : [ {"cost-mode" : "numerical", "cost-metric" : "routingcost"}, {"cost-mode" : "numerical", "cost-metric" : "latency"} Randriamasy, et al. Expires January 7, 2016 [Page 25] Internet-Draft ALTO Cost Calendar July 2015 ], "calendared" : [true, true], "endpoints" : { "srcs": [ "ipv4:192.0.2.2" ], "dsts": [ "ipv4:192.0.2.89", "ipv4:198.51.100.34", "ipv4:203.0.113.45" ] } } HTTP/1.1 200 OK Content-Length: [TODO] Content-Type: application/alto-endpointcost+json { "meta" : { "multi-cost-types" : [ {"cost-mode" : "numerical", "cost-metric" : "routingcost"}, {"cost-mode" : "numerical", "cost-metric" : "latency"} ], "calendar-response-attributes" : [ { "cost-type-name : num-routingcost" "calendar-start-time" : Mon, 30 Jun 2014 00:00:00 GMT, "time-interval-size" : "1 hour", "numb-intervals" : 24, "repeated": 4 }, { "cost-type-name : num-latency" "calendar-start-time" : Tue, 1 Jul 2014 13:00:00 GMT, "time-interval-size" : "5 minute", "numb-intervals" : 12, "repeated": 1 } ], } // end meta "endpoint-cost-map" : { "ipv4:192.0.2.2": { "ipv4:192.0.2.89" : [[r1, r2, ... r24], [l1, l2, ... l12]], "ipv4:198.51.100.34" : [[r1, r2, ... r24], [l1, l2, ... l12]], "ipv4:203.0.113.45" : [[r1, r2, ... r24], [l1, l2, ... l12]] } } } Randriamasy, et al. Expires January 7, 2016 [Page 26] Internet-Draft ALTO Cost Calendar July 2015 4.3. Recap of rules related to ALTO Cost Calendars XXXXX TO BE COMPLETED + MOVED AT THE END OF THE SPECS A Calendar-aware ALTO Server MUST implement the base protocol specified in RFC7285. If no Calendar attributes are defined for a given Cost Type, in a given resource entry, the ALTO Server MUST set the value in the 'calendar-attributes' array to the symbol 'null' . When a metric is available as a calendar, it MUST be available as a single value. An ALTO Server aquiring cost values in limited time intervals only can construct a single value from the value array. Calendared information resources MUST be requested via a POST method. If this member "repeat-indication" is not present in the calendar attributes indicated in the IRD, it MUST be assumed to have a value equal to "false". 5. Use cases for ALTO Cost Schedule This section presents use cases showing the benefits of ALTO Cost calendars for applications needing to decide both "where" to connect and "when". 5.1. Bulk Data Transfer scheduling upon bandwidth calendars Large Internet Content Providers (ICPs) like Facebook or YouTube, as well as CDNs rely on data replication across multiple sites and time zones to offload the core site and increase user experience through shorter latency from a local site. Typically the usage pattern of these data centers or caches follows a location dependent diurnal demand pattern. In these examples, data replication across the various locations of an ICP, leads to bulk data transfers between datacenters on a diurnal pattern. In the meantime, there is a degree of freedom on when the content is transmitted from the origin server to the caching node, or from the core site to a local site. However, scheduling these data transfers is a non-trivial task as they should not infer with the user peak demand to avoid degradation of user experience and to decrease billing costs for the datacenter operator by leveraging off-peak hours for the transfer. As a result, these ICPs need to have a good knowledge on the link utilization patterns between the different datacenters before making Randriamasy, et al. Expires January 7, 2016 [Page 27] Internet-Draft ALTO Cost Calendar July 2015 an efficient scheduling decision. While usage data today is already gathered and used to schedule data transfers, provisioning these data gets increasingly complex with the number of CDN nodes and datacenter operators that are involved. In particular, privacy concerns prevent that this kind of data is shared across administrative domains. The ALTO Cost Calendar avoids these problems by presenting an abstracted view of time sensitive utilization maps through a dedicated ALTO service to allow ICPs a coherent scheduling of data transfers across administrative domains and time zones. Likewise, bandwidth Calendaring allows network operators to reserve resources in advance according to agreements with their customers, enabling them to transmit data with specified starting time and duration, for example, for a scheduled bulk data replication between data centers. Traditionally, this can be supported by a Network Management System operation such as path pre-establishment and activation on the agreed starting time. However, this does not provide efficient network usage since the established paths exclude the possibility of being used by other services even when they are not used for undertaking any service. An ALTO Cost calendar for TE metrics on transfer paths can support the scheduled bulk data replication with better efficiency since it can alleviate the processing burden on network elements. Cost calendars for these time-sensitive ALTO TE metrics need to consider the network topology and the dynamicity of the traffic. For example, a small topology with low density and low capacity that carries inpredictable, heavy and bursty traffic has few chances to exhibit stationary TE metric value patterns over large periods and would benefit to use the ALTO Calendar over smaller time slots. Some ALTO TE metric values, even aggregated over time may need to be updated at a frequency that would require doing ALTO requests at a pace that would be overload both the ALTO Client and the Server. Large high capacity topologies would benefit from Cost Calendars with a coarse time granularity for the filtered cost map service where as Calendars of finer time granularity for the Endpoint Cost Service would be better suited for small low density and capacity topologies. 5.1.1. Applicable example transaction Assuming a Large high capacity topology, an applicable example transaction for this us case is provided by section 4.1.3. "Example transaction for a FCM with a "request-date" bandwidth Calendar". Randriamasy, et al. Expires January 7, 2016 [Page 28] Internet-Draft ALTO Cost Calendar July 2015 5.2. Applications with limited connectivity or access to datacenters Some applications are limited in their connectivity either in time or resources or both. For example applications running on devices in remote locations or in developing countries that need to synchronize their state with a data center periodically, in particular if sometimes there is no connection at all. Example applications are enterprise database update, remote learning, remote computation distributed on several data center endpoints. Wireless connections have a variable quality and may even be intermittent. On the other hand, the wireless network conditions are often predicable and have a rapid impact on applications. Non real time applications and time-insensitive data transfers such as client patching, archive syncing, etc. can benefit from careful scheduling. It is thus desirable to provide ALTO clients with routing costs to connection nodes (i.e. Application Endpoints) over different time periods. This would allow end systems using ALTO aware application clients to schedule their connections to application endpoints. Another challenge arises with applications using data and physical resources scattered around the world. For non-real time applications, the interaction with Endpoints can be scheduled at the time slots corresponding to the best possible network conditions in order to improve the QoE. For instance, resource Ra downloaded from Endpoint EPa at time t1, Resource Rb uploaded to EPb at time t2, some batch computation involving Ra and Rb done on EPc at time t3 and results R(A,B) downloaded to EPd and EPe at time t4. Randriamasy, et al. Expires January 7, 2016 [Page 29] Internet-Draft ALTO Cost Calendar July 2015 +-----+ +-----+ | EPa | | EPb | <----- Rb +-----+ +-----+ (t2=50) | +-------+ | Ra --------------> | EPc | | (time t1=10) | | | |t3=100 | <----------------- Rb +-------+ | \ | \ R(Ra,Rb) (t4=200) | \ | -------------------. V V +-----+ +-----+ | EPd | | EPe | +-----+ +-----+ 5.2.1. Applicable example transaction An applicable example transaction for this us case is provided by section 4.2.3. "Example transaction for the ECS with a "periodic" routingcost Calendar". 5.3. SDN Controller guided traffic scheduling with Calendars An ALTO Server can assist an SDN Controller by hosting abstracted network information that can be provided to SDN aware applications via an ALTO Client. Via the Northbound interface (NBI), applications may get QoE impacting information such as network provider preferences w.r.t. delay and bandwidth on the network paths. Such information may be provided via the ALTO Service if the latter supports the requested metrics. One key objective of an SDN controller is the ability to balance the application traffic whenever possible. Resources availability may often be predicted and strong incentives for applications to time shift their traffic may be given by network operators appropriately setting routing cost values at different time values, according to their policy on network utilization over time. To achieve this objective, the SDN controller can: Randriamasy, et al. Expires January 7, 2016 [Page 30] Internet-Draft ALTO Cost Calendar July 2015 1. get the network state information from its controlled network elements through its southbound API and derive an estimation of these values over given time frames 2. abstract the network topology and costs on end to end paths and store this in an ALTO Server in the form of Network Maps and Cost Calendars 3. deliver these values to ALTO Clients linked to SDN applications, through the NBI. This way: o On one hand, the applications get the best possible QoE, as they can pick the best time for them to access one or more Endpoints or PIDs, o One the other hand the SDN controller achieves load balancing and optimizes application traffic as it may guide the application traffic so as to better distribute the traffic over time, and thus optimize its resources usage. 5.3.1. Applicable example transaction An applicable example transaction for this us case is provided by section 4.2.4. "Example transaction for the ECS with a calendar on both routingcost and latency". 6. IANA Considerations Information for the ALTO Endpoint property registry maintained by the IANA and related to the new Endpoints supported by the acting ALTO server. These definitions will be formulated according to the syntax defined in Section on "ALTO Endpoint Property Registry" of [ID-alto-protocol], Information for the ALTO Cost Type Registry maintained by the IANA and related to the new Cost Types supported by the acting ALTO server. These definitions will be formulated according to the syntax defined in Section on "ALTO Cost Type Registry" of [RFC7285], 6.1. Information for IANA on proposed Cost Types When a new ALTO Cost Type is defined, accepted by the ALTO working group and requests for IANA registration MUST include the following information, detailed in Section 11.2: Identifier, Intended Semantics, Security Considerations. Randriamasy, et al. Expires January 7, 2016 [Page 31] Internet-Draft ALTO Cost Calendar July 2015 6.2. Information for IANA on proposed Endpoint Propeeries Likewise, an ALTO Endpoint Property Registry could serve the same purposes as the ALTO Cost Type registry. Application to IANA registration for Endpoint Properties would follow a similar process. 7. Acknowledgements Thank you to Diego Lopez, He Peng and Haibin Song and the ALTO WG for fruitful discussions. 8. References 8.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC5693] Seedorf, J. and E. Burger, "Application-Layer Traffic Optimization (ALTO) Problem Statement", RFC 5693, October 2009. 8.2. Informative References [draft-ietf-alto-multi-cost] S. Randriamasy, W. Roome, N. Schwan, , "Multi-Cost ALTO (work in progress), draft-ietf-alto-multi-cost", May 2015. [draft-wu-alto-te-metrics] Q. Wu, Y. Yang, Y. Lee, D. Dhody, S. Randriamasy, , "ALTO Traffic Engineering Cost Metrics (work in progress)", October 2014. [draft-yang-alto-topology] Y. Yang, , "ALTO Topology Considerations (work in progress)", July 2013. [ID-alto-protocol] R.Alimi, R. Penno, Y. Yang, Eds., "ALTO Protocol, RFC 7285", September 2014. [RFC7285] R. Alimi, R. Yang, R. Penno, Eds., "ALTO Protocol", September 2014. [sdnrg] "Software Defined Network Research Group, http://trac.tools.ietf.org/group/irtf/trac/wiki/sdnrg". Randriamasy, et al. Expires January 7, 2016 [Page 32] Internet-Draft ALTO Cost Calendar July 2015 [slides-88-alto-5-topology] G. Bernstein, Y. Lee, Y. Yang, , , "ALTO Topology Service: Use Cases, Requirements and Framework (presentation slides IETF88 ALTO WG session), http://tools.ietf.org/agenda/88/slides/ slides-88-alto-5.pdf", November 2013. Authors' Addresses Sabine Randriamasy Alcatel-Lucent Bell Labs Route de Villejust NOZAY 91460 FRANCE Email: Sabine.Randriamasy@alcatel-lucent.com Richard Yang Yale University 51 Prospect st New Haven, CT 06520 USA Email: yry@cs.yale.edu Qin Wu Huawei 101 Software Avenue, Yuhua District Nanjing, Jiangsu 210012 China Email: sunseawq@huawei.com Lingli Deng China Mobile China Email: denglingli@chinamobile.com Nico Schwan Thales Deutschland Email: nico.schwan@thalesgroup.com Randriamasy, et al. Expires January 7, 2016 [Page 33]