One document matched: draft-roome-alto-pid-properties-03.xml


<?xml version="1.0"  encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "http://http://tools.ietf.org/tools/templates/rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc iprnotified="no" ?>
<?rfc symrefs="yes"?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<rfc category="std"
     docName="draft-roome-alto-pid-properties-03" 
     ipr="trust200902">
	<front>
		<title>PID Property Extension for ALTO Protocol</title>
		<author initials="W." surname="Roome" fullname="Wendy Roome">
			<organization abbrev="Alcatel-Lucent">Alcatel-Lucent/Bell Labs</organization>
			<address>
				<postal>
					<street>600 Mountain Ave, Rm 3B-324</street>
					<city>Murray Hill</city>
					<region>NJ</region>
					<code>07974</code>
					<country>USA</country>
				</postal>
				<phone>+1-908-582-7974</phone>
				<email>w.roome@alcatel-lucent.com</email>
			</address>
		</author>
		<author initials="Y." surname="Yang" fullname="Y. Richard Yang">
			<organization abbrev="Yale">Yale University</organization>
			<address>
				<postal>
					<street>51 Prospect St.</street>
					<city>New Haven</city>
					<region>CT</region>
					<country>USA</country>
				</postal>
				<email>yry@cs.yale.edu</email>
			</address>
		</author>
		<date day="23" month="January" year="2015"/>
		<area>Networks</area>
		<workgroup>ALTO WG</workgroup>
		<keyword>ALTO</keyword>
		<abstract>
			<t>
				This document extends the Application-Layer Traffic
				Optimization (ALTO) Protocol <xref
				target="RFC7285"/> by defining PID-based
				properties in much the same way that the original ALTO
				Protocol defined endpoint-based properties.
			</t>
		</abstract>
		<note title="Requirements Language">
		  <t>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 <xref target="RFC2119">RFC 2119</xref>.</t>
		</note>
	</front>
	
	<middle>
		<section title="Introduction">
		
			<t>
				A key abstraction introduced by the ALTO Protocol <xref
				target="RFC7285"/> is a PID (Provider-defined
				Identifier): a named set of
				endpoint addresses. For IPv4/IPv6 networks,
				this set is defined by one or more endpoint address
				prefixes, or CIDRs <xref target="RFC4632"/>.
			</t>

			<t>
				An ALTO Server defines one or more Network Maps. Each Network Map
				is defined as a set of uniquely named PIDs,
				with the constraint that any given CIDR
				may appear in only one PID.
				Thus a Network Map logically partitions the space of endpoint addresses
				into groups defined by the PIDs.
			</t>
			<t>
				An ALTO Server may define several Network Maps, partitioning
				the endpoints in different ways. For example, one Network
				Map might partition endpoints according to geographical
				locations, with each PID representing the set of endpoints
				at a given location.
				Another Network Map might partition the endpoints according
				to their network capabilities
				(e.g., CDN delivery protocols such as HTTP or HTTPS).
				In this case, each PID defined in the Network Map represents
				endpoints with similar capabilities.
				</t>
				
			<t>
				Another abstraction introduced by the ALTO protocol is an Endpoint Property,
				which is a named value associated with an endpoint.
				Properties can include data such as
				the endpoint's ISP or ASN (Autonomous System Number),
				or the endpoint's latitude and longitude,
				or the country or continent codes for the endpoint's location.
				The ALTO protocol defines the mechanism for a client
				to query a server for these property values,
				but does not define the Endpoint Properties themselves;
				that is left to extensions.
			</t>
			
			<t>
				Just as Endpoint Properties are useful, it is reasonable to
				expect that it will be useful for sets of endpoints
				-- that is, PIDs -- to have properties as well.
				A PID Property might be an Endpoint Property shared by all endpoints
				in that PID (e.g., their ISP or ASN). Alternatively, a PID Property could
				be the aggregation of individual properties of the endpoints in the PID
				(e.g., the latitude and longitude of their geographic bounding box).
				Or a PID Property might simply be
				inherent in the way in which the ALTO Server defined the PID.
			</t>
			
			<t>
				However, the base ALTO protocol does not define the concept
				of PID Properties, or present a mechanism for a client
				to obtain PID Properties from an ALTO Server.
				This extension remedies that omission.
			</t>
		</section>

		<section title="The Consistency and Inheritance Design Views">
			<t>
				A key goal for defining PID Properties is that they
				should be consistent with, and generalize,
				Endpoint Properties. Specifically, in the base ALTO Protocol,
				the ALTO Server may associate a set of (name,value) pairs
				with any endpoint. These sets are the Endpoint Properties. 
				The ALTO Protocol specifies the mechanism for a client
				to retrieve those Endpoint Properties from a server.
			</t>
			
			<t>
				Consider the Endpoint Property PR and all endpoints defined
				in the PID P. If those endpoints all have the same
				value for PR, then the PID property PR for P should also have that same value.
			</t>
			<t>
				For the more general case,
				assume that P consists of the set of endpoint addresses {EPi},
				and EPi.PR is the value of property PR for endpoint EPi.
				Then we could obtain the value of PR for PID P by evaluating
				an aggregation function over the endpoint values {EPi.PR}.
				Typical aggregation functions include
				average/mean, mode, geo-center, union, bounding box, etc.,
				although of course the actual aggregation function would
				depend on the semantics of the property.
			</t>

			<t>
				Complementing the bottom-up aggregation view, we also adopt a
				top-down inheritance view.
				That is, if a property PR is not explicitly defined for an endpoint,
				but the endpoint's PID does define a value for PR,
				then the endpoint inherits the value of PID property.
				The concept of inheritance is a simple, but powerful
				concept to reduce information redundancy.
			</t>

		</section>
		
		<section title="PID Property Names">
			<t>
				PID Property names MUST follow the same rules
				as Global Endpoint Property names
				(Section 10.8.2 of <xref target="RFC7285"/>),
				and non-private names MUST be registered with IANA.
			</t>
			<t>
				Furthermore, PID Properties and Endpoint Properties
				share the same name space, and their definitions MUST be consistent.
				That is, if PR is used as both a PID Property and an Endpoint Property,
				then the semantics of PR as a PID Property
				must be clearly related to semantics of PR as an Endpoint Property.
				For example, when used as a PID Property,
				PR could be defined as the average
				(or some other representative value) of the values
				of PR for a set of endpoints.
			</t>
			<t>
				This document will use the type PIDPropertyType
				to indicate a string denoting a PID Property Name.
				This type is identical to EndpointPropertyType
				as defined in Section 10.8 of <xref target="RFC7285"/>.
			</t>
		</section>
		
		<section title="A Hierarchical View of a Network Map">

			<section title="Nested And Overlapping PIDs">
			
				<t>
					Each PID in a Network Map covers a set of endpoint addresses,
					and these sets can form a nested hierarchy.
					As an example, consider the following Network Map:
				</t>
	<figure>
	<artwork>
	<![CDATA[
    PID p0:  [0.0.0.0/0, ::0/0]
    PID p1:  [1.0.0.0/8]
    PID p2a: [1.0.0.0/16]
    PID p2b: [1.1.0.0/16]
	]]>
	</artwork>
	</figure>
        
				<t>
					Every endpoint in p2a and p2b is also in the set covered by p1,
					and every possible IPV4 endpoint is also covered by PID p0.
					We would like to take advantage of this hierarchy
					to allow PIDs to inherit properties,
					just as a class in an object oriented programming language
					inherits attributes from its parent class.
					In the example, it is reasonable to expect
					that PIDs p2a and p2b would inherit any property
					of p1 that they do not override,
					and every PID would inherit the properties of PID p0.
				</t>
	
				<t>
					Note that when calculating costs, the ALTO Protocol
					requires every endpoint to be in one, and only one, PID.
					The ALTO Protocol resolves this by using the "longest match" rule.
					That is, the ALTO Protocol says when an endpoint address
					is covered by more than one prefix, the address is in the PID
					with the prefix with the longest mask.
					Because any given prefix can be on only one PID,
					this ensures each endpoint is in only one PID.
					Thus in our example, 1.0.0.1 is in p2a, 1.1.0.1 is in p2b,
					and 1.2.0.1 in in p1.
				</t>
			
				<t>
					However, while PIDs can nest within other PIDs,
					they do not necessarily form a simple hierarchy.
					Suppose we add PID p3 to the previous Network Map:
				</t>
			
	<figure>
	<artwork>
	<![CDATA[
    PID p0:  [0.0.0.0/0, ::0/0]
    PID p1:  [1.0.0.0/8]
    PID p2a: [1.0.0.0/16]
    PID p2b: [1.1.0.0/16]
    PID p3:  [1.0.255.0/24, 1.1.0.0/24]
	]]>
	</artwork>
	</figure>
				
				<t>
					Some endpoints in p3 are in p2a, and others are in p2b.
					Thus p3 is partially contained in PIDs p2a and p2b,
					without being completely contained in either.
					So we would not expect p3 to inherit properties from p2a or p2b.
					But p3 is completely contained in p1 and p0,
					so it is reasonable to expect p3 to inherit
					properties from p1 and p0 that are not overridden in p2a or p2b.
					In short, "PID inheritance" raises issues similar
					to those of "multiple inheritance"
					in object oriented programming languages.
				</t>
			</section>

			<section title="Definition Of PID Property Inheritence"
						anchor="InheritanceAlgorithm">
				<t>
					While PID inheritance raises some complications, it is too useful
					to ignore. Fortunately CIDRs do form a simple
					"single parent" hierarchy, so we will use CIDR inheritance
					as the basis for defining PID inheritance. We believe this
					preserves the useful cases, and avoids the pathological
					ones.
				</t>
				<t>
					Note that the ALTO Protocol did not define "PID
					inheritance" because it was not relevant to the base protocol.
				</t>
				<t>
				<list style="hanging">
					<t hangText="Definition:">
						A parent of CIDR C is any CIDR,
						in the set of CIDRs for all PIDs in the Network Map,
						which covers all endpoints covered by C,
						and whose mask is shorter than the mask of C.
					</t>
					<t hangText="Definition:">
						The immediate parent of CIDR C
						is the parent of C with the longest prefix.
						The immediate parent CIDR might not exist,
						but if it does, it is unique.
					</t>
					<t hangText="Definition:">
						A CIDR C inherits the value V for property PR
						if the PID containing its immediate parent CIDR
						defines the value V for property PR,
						or if its immediate parent CIDR inherits
						the value V for property PR.
					</t>
					<t hangText="Definition:">
						A PID P has the value V for property PR
						if PR is explicitly defined with value V in P,
						or if every CIDR C in P inherits the same value V for PR.
					</t>
				</list>
				</t>

				<t>
					Suppose the following properties are defined for PIDs described above:
				</t>
		
				<figure>
				<artwork>
				<![CDATA[
    PID p1:  ISP="Verizon" country="us"
    PID p2a: ASN="12345" state="NJ"
    PID p2b: ASN="12345" state="CT"
    ]]>
				</artwork>
				</figure>
		
				<t>
					Then p2a, p2b, and p3 all inherit the "ISP" and
					"country" properties from p1, because those properties are not
					defined for p2a or p2b. p3 would inherit "12345" for the
					"ASN" property, because although p2a and p2b both
					define that property, they give it the same value. However,
					p3 would not inherit the "state" property, because it has
					different values in p2a and p2b.
				</t>

			</section>
		</section>
		
		<section title="Protocol Specification: New Service Information Resources">
			<t>
				This document defines two new ALTO resources.
				The PID Property Map returns the values of a set of properties
				for all PIDs in a Network Map.
				The Filtered PID Property Map returns PID Properties
				for a subset of PIDs and properties selected by the client.
				These are analogous to the Full and Filtered
				Network Maps in the base ALTO Protocol.
			</t>
			<t>
				An ALTO Server may provide any number of resource of these types,
				provided that they have unique capabilities.
				For example, an ALTO Server may offer several Full PID Property Maps,
				for the same Network Map,
				as long as each one returns a different set of properties.
			</t>
			<t>
				Both services are optional.
				In particular, an ALTO Server may provide a Full PID Property Map
				without providing a corresponding Filtered PID Property Map,
				and vice versa.
			</t>

		<section title="Full PID Property Map" anchor="FullPidPropMapService">
			<t>
				A Full PID Property Map returns the properties defined
				for all PIDs in a Network Map.
			</t>
			<section title="Media Type" anchor="PIDPropMediaType">
				<t>
					The media type of an ALTO PID Property Map resource is
					"application/alto-pidprop+json".
				</t>
			</section>
			<section title="HTTP Method">
				<t>
					An ALTO PID Property Map resource is requested using the HTTP GET method.
				</t>
			</section>
			<section title="Accept Input Parameters">
				<t>
				None.
				</t>
			</section>
			<section title="Capabilities">
				<t>
					The capabilities are defined by an object of type PIDPropertyCapabilities:
				</t>
			<figure>
			  <artwork><![CDATA[
  object {
    PIDPropertyType prop-types<1..*>;
  } PIDPropertyCapabilities;
]]></artwork>
			</figure>
				<t>
					where "prop-types" is an array with the names
					of the PID Properties returned by this resource.
				</t>
			</section>
			<section title="Uses">
				<t>
					An array with the resource-id of the Network Map
					which defines the PIDs whose properties are returned.
				</t>
			</section>
			<section title="Response" anchor="FullPidPropResponse">
				<t>
					The "dependent-vtags" field in the "meta" field of the
					response MUST be an array that includes the version tag of
					the ALTO Network Map defining these PIDs.
				</t>
				<t>
					The data component of a PID Properties response
					is named "pid-properties", which is a JSON object
					of type PIDPropertyMapData, where:
				</t>
			<figure>
			<artwork><![CDATA[
   object {
     PIDPropertyMapData pid-properties;
   } InfoResourcePIDProperties : ResponseEntityBase;
   
   object-map {
     PIDName -> PIDProps;
   } PIDPropertyMapData;
   
   object {
     PIDPropertyType -> JSONValue;
   } PIDProps
]]></artwork>
			</figure>
				<t>
					The PIDName and ResponseEntityBase types are defined
					in Sections 10.1 and 8.4 of the
					<xref target="RFC7285">ALTO Protocol</xref>.
				</t>
				<t>
					Specifically, a PIDPropertyMapData object has one member for
					each PID in the Network Map. The PID's properties are
					encoded in the corresponding PIDProps object. PIDProps
					encodes one name/value pair for each property, where the
					property names are encoded as strings of type
					PIDPropertyType. A protocol implementation SHOULD assume
					that the property value is a JSONString and fail to parse if
					it is not, unless the implementation is using an extension
					to this document that indicates when and how property values
					of other data types are signaled.
				</t>
				<t>
					For each PID in the Network Map, the ALTO Server returns the
					value defined for each of the PID Properties specified in
					this resource's "capabilities" list. For efficiency, the
					ALTO Server SHOULD omit property values that are inherited
					rather than explicitly defined. The client SHOULD use the
					algorithm defined in <xref target="InheritanceAlgorithm"/>
					to determine inherited property values.
				</t>
				<t>
					An ALTO Server MAY explicitly define a property as not having
					a value for a particular PID.
					That is, a server may say that a property is "defined to have no value",
					as opposed to the property being "undefined".
					In this case,
					if the PID would not inherit a value for that property,
					then the ALTO Server MUST either omit the property,
					or else return a "null" value for it.
					However, if that PID would inherit a value for that property,
					then the ALTO server MUST return a "null" value.
					An ALTO Client MUST recognize a "null" value as meaning "do not
					apply the inheritance rules for this property in the PID."
				</t>
				<t>
					If the ALTO Server does
					not define any properties for a PID, then the server MAY omit that
					PID from the response.
				</t>
			</section>
			<section title="Example">
				<t>
					The following example uses the Network Map and PID Properties
					defined above. Note that the response does not include entries
					for PIDs p0 or p3. The former was omitted because no properties
					were defined for it, and the latter because its
					only properties are inherited.
				</t>
			<figure>
			<artwork><![CDATA[
  GET /pidprop/full HTTP/1.1
  Host: alto.example.com
  Accept: application/alto-pidprop+json,application/alto-error+json


  HTTP/1.1 200 OK
  Content-Length: ###
  Content-Type: application/alto-pidprop+json
  {
    "meta" : {
      "dependent-vtags" : [
        {"resource-id": "my-default-network-map",
         "tag": "7915dc0290c2705481c491a2b4ffbec482b3cf62"
        }
      ]
    },
    "pid-properties": {
      "p1" : { "ISP": "Verizon", "country": "us" },
      "p2a": { "ASN": "12345", "state": "NJ" },
      "p2b": { "ASN": "12345", "state": "CT" }
    }
  }
]]></artwork>
</figure>
			</section>
		</section>	

		<section title="Filtered PID Property Map" anchor="FilteredPidPropMapService">
			<t>
				A Filtered PID Property Map returns the values
				for set of PIDs and properties selected by the client.
			</t>
			<section title="Media Type">
				<t>
					The media type of an ALTO Filtered PID Property Map resource is
					the same as a Full PID Property Map,
					and is defined in <xref target="PIDPropMediaType"/>.
				</t>
			</section>
			<section title="HTTP Method">
				<t>
					An ALTO Filtered PID Property Map resource is requested
					using the HTTP POST method.
				</t>
			</section>
			<section title="Accept Input Parameters" anchor="PIDPropParams">
				<t>
					The input parameters for a Filtered PID Property Map request are
					supplied in the entity body of the POST request. This
					document specifies the input parameters with a data format
					indicated by the media type
					"application/alto-pidpropparams+json", which is a JSON
					object of type ReqPIDProp:
				</t>
			<figure>
			  <artwork><![CDATA[
  object {
    PIDPropertyType properties<1..*>;
    PIDName         pids<1..*>
  } ReqPIDProp;
]]></artwork>
			</figure>
				<t>
					with fields:
					<list style="hanging">

					<t hangText="properties:">List of PID properties to be
					returned for each PID. Each specified property MUST
					be included in the list of supported properties indicated
					by this resource's "capabilities" field
					(<xref target="FilteredPIDPropCapabilities" />).  The ALTO
					server MUST interpret entries appearing multiple times as
					if they appeared only once.
					</t>

					<t hangText="pids:">List of PID names for
					which the specified properties are to be returned. The
					ALTO server MUST interpret entries appearing multiple
					times as if they appeared only once.
					</t>

					</list>
				</t>
			</section>
			<section title="Capabilities" anchor="FilteredPIDPropCapabilities">
				<t>
					The capabilities are defined by an object of type PIDPropertyCapabilities,
					as defined above.
				</t>
			</section>
			<section title="Uses">
				<t>
					An array with the resource-id of the Network Map
					which defines the PIDs whose properties are returned.
				</t>
			</section>
			<section title="Response">
				<t>
					The response is the same as for the Full PID Property Map
					(<xref target="FullPidPropResponse"/>),
					except that it only includes the properties and PIDs
					requested by the client.
				</t>
				<t>
					Also, Filtered PID Property Map response MUST include
					all inherited PID property values
					(unlike the Full PID Property Map, the Filtered PID Property Map response
					does not include enough information for the client to calculate
					the inherited values).
				</t>
			</section>
			<section title="Example">
				<t>
					The following example uses the Network Map and PID Properties
					defined above. Note that the response includes the inherited
					property "ISP" for PID p2a, and "state" and "ISP" for p3.
				</t>
			<figure>
			<artwork><![CDATA[
  POST /pidprop/lookup HTTP/1.1
  Host: alto.example.com
  Content-Length: ###
  Content-Type: application/alto-pidpropparams+json
  Accept: application/alto-pidprop+json,application/alto-error+json

  {
    "properties" : [ "ISP", "ASN", "state" ]",
    "pids" : [ "p1", "p2a", "p3" ]
  }


  HTTP/1.1 200 OK
  Content-Length: ###
  Content-Type: application/alto-pidprop+json
  {
    "meta" : {
      "dependent-vtags" : [
        {"resource-id": "my-default-network-map",
         "tag": "7915dc0290c2705481c491a2b4ffbec482b3cf62"
        }
      ]
    },
    "pid-properties" : {
      "p1" : { "ISP": "Verizon" },
      "p2a": { "ISP": "Verizon", "ASN": "12345", "state": "NJ" },
      "p3" : { "ISP": "Verizon", "ASN": "12345" }
    }
  }
]]></artwork>
</figure>
			</section>
		</section>
		</section>

		<section title="IRD Example">
			<t>
				Here is an example of an ALTO Information Resource Directory (IRD)
				which defines several PID Property resources.
				Note that "full-pid-property-map" returns
				several PID Properties for all PIDs in the Network Map,
				while "asn-pid-property-map" returns just the ASN property.
				The resource "filtered-pid-properties" resource
				returns values for properties and PIDs selected by the client. 
			</t>

        <figure>
        <artwork>
          <![CDATA[
  ...
  "resources" : {
     "my-default-network-map" : {
        "uri" : "http://alto.example.com/networkmap",
        "media-type" : "application/alto-networkmap+json" 
     },
     "endpoint-property" : {
        "uri" : "http://alto.example.com/endpointprop/lookup",
        "media-type" : "application/alto-endpointprop+json",
        "accepts" : "application/alto-endpointpropparams+json",
        "capabilities" : {
          "prop-types" : [ "my-default-network-map.pid",
                           "priv:ietf-example-prop" ]
        },
     },
     "full-pid-property-map" : {
        "uri" : "http://alto.example.com/pidprop/full",
        "media-type" : "application/alto-pidprop+json",
        "uses" : ["my-default-network-map" ]
        "capabilities" : {
          "prop-types" : [ "ISP", "country", "ASN", "state" ]
        },
     }
     "asn-pid-property-map" : {
        "uri" : "http://alto.example.com/pidprop/asn",
        "media-type" : "application/alto-pidprop+json",
        "uses" : ["my-default-network-map" ]
        "capabilities" : {
          "prop-types" : [ "ASN" ]
        },
     }
     "filtered-pid-properties" : {
        "uri" : "http://alto.example.com/pidprop/lookup",
        "media-type" : "application/alto-pidprop+json",
        "accepts" : "application/alto-pidpropparams+json",
        "uses" : ["my-default-network-map" ]
        "capabilities" : {
          "prop-types" : [ "ISP", "country", "ASN", "state" ]
        },
     }
  }  
      ]]>
        </artwork>
        </figure>

      </section>

		<section title="Extensions To Endpoint Property Service">
			<t>
				As described in Section 10.8 of <xref target="RFC7285"/>,
				Endpoint Property names may be prefixed with the Resource ID of
				a Network Map. For such resource-specific properties, if a value
				is not explicitly defined for an endpoint, the Endpoint Property
				Service MUST return the value that a PID Property Map would
				return for the PID containing that endpoint.
			</t>
			
			<t>
				For property names that are not prefixed by a Network Map
				Resource ID, if a value is not defined for an endpoint, the
				Endpoint Property Service MAY return the value defined for that
				property in one of the ALTO Server's PID Property Maps for the
				PID containing the endpoint.
			</t>
		</section>

		<section title="Security Considerations">
			<t>
				As with Endpoint Properties, PID Properties may have sensitive
				customer-specific information. If this is the case, an ALTO
				Server may limit access to those properties by providing several
				different PID Property services. For non-sensitive properties,
				the ALTO Server would provide a URI which accepts requests from
				any client. Sensitive properties, on the other hand, would only
				be available via a secure URI which would require client
				authentication.
			</t>
		</section>

		<section anchor="IANA" title="IANA Considerations">
			<t>
				This document defines additional application/alto-* media types,
				and extends the ALTO endpoint property registry.
			</t>

			<section title="application/alto-* Media Types">
			<t>This document registers two additional ALTO media types, listed
			in
			<xref target="TableMediaTypes" />.</t>

			<texttable anchor="TableMediaTypes" title="Additional ALTO Media Types">
			  <ttcol>Type</ttcol>
			  <ttcol>Subtype</ttcol>
			  <ttcol>Specification</ttcol>
			  <c>application</c>
			  <c>alto-pidprop+json</c>
			  <c>
				<xref target="PIDPropMediaType" />
			  </c>
			  <c>application</c>
			  <c>alto-pidpropparams+json</c>
			  <c>
				<xref target="PIDPropParams" />
			  </c>
			</texttable>
			<t>
			  <list style="hanging" hangIndent="3">
				<t hangText="Type name:">application</t>
				<t hangText="Subtype name:">This documents registers
				multiple subtypes, as listed in
				<xref target="TableMediaTypes" />.</t>
				<t hangText="Required parameters:">n/a</t>
				<t hangText="Optional parameters:">n/a</t>
				<t hangText="Encoding considerations:">Encoding considerations are
				identical to those specified for the "application/json" media type. See

				<xref target="RFC7159" />.</t>
				<t hangText="Security considerations:">Security considerations relating
				to the generation and consumption of ALTO Protocol messages are
				discussed in
				Section 15 of <xref target="RFC7285"/>.</t>
				<t hangText="Interoperability considerations:">This document specifies
				format of conforming messages and the interpretation thereof.</t>
				<t hangText="Published specification:">This document is the
				specification for these media types; see
				<xref target="TableMediaTypes" /> for the section documenting each media
				type.</t>


				<t hangText="Applications that use this media type:">ALTO servers and
				ALTO clients either stand alone or are embedded within other
				applications.</t>
				<t hangText="Additional information:">
				  <list style="hanging" hangIndent="3">
					<t hangText="Magic number(s):">n/a</t>
					<t hangText="File extension(s):">This document uses the mime type
					to refer to protocol messages and thus does not require a file
					extension.</t>
					<t hangText="Macintosh file type code(s):">n/a</t>
				  </list>
				</t>
				<t hangText="Person & email address to contact for further information:">
				See Authors' Addresses section.</t>
				<t hangText="Intended usage:">COMMON</t>
				<t hangText="Restrictions on usage:">n/a</t>
				<t hangText="Author:">See Authors' Addresses section.</t>
				<t hangText="Change controller:">Internet Engineering Task Force (mailto:iesg@ietf.org).</t>
			  </list>
			</t>
			</section>
			<section title="ALTO Endpoint Property Type Registry" anchor="IANAEndpointProp">
				<t>
					The ALTO Endpoint Property Type Registry
					was created by <xref target="RFC7285"/>.
					If possible, the name of that registry should be changed to
					"ALTO Property Type Registry", to indicate that it
					is not restricted to Endpoint Properties.
					If it is not feasible to change the name,
					the description must be amended to indicate
					that it registers PID Properties
					as well as Endpoint Properties.
				</t>
			</section>
 
		</section>

	</middle>
	
	<back>
		<references>
			<reference anchor='RFC2119'>
				<front>
					<title abbrev='HTTP'>Key words for use in RFCs to Indicate Requirement Levels</title>
					<author initials='S.' surname='Bradner' fullname='S. Bradner' />
					<date year='1997' month='March' />
				</front>
				<seriesInfo name='RFC' value='2119' />
				<seriesInfo name='BCP' value='14' />
				<format type='TXT' target='http://www.rfc-editor.org/rfc/rfc2119.txt' />
			</reference>
			<reference anchor="RFC4632">
				<front>
					<title>Classless Inter-domain Routing (CIDR):
						The Internet Address Assignment and Aggregation Plan</title>
					<author initials="V." surname="Fuller" fullname="V. Fuller"/>
					<author initials="T." surname="Li" fullname="T. Li"/>
					<date month="August" year="2006"/>
				</front>
				<seriesInfo name="RFC" value="4632" />
				<seriesInfo name="BCP" value="122" />
			</reference>
			<reference anchor="RFC7159">
				<front>
					<title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
					<author initials="T." surname="Bray" fullname="T. Bray"/>
					<date month="March" year="2014"/>
				</front>
				<seriesInfo name="RFC" value="7159" />
			</reference>
			<reference anchor="RFC7285">
				<front>
					<title>Application-Layer Traffic Optimization (ALTO) Protocol</title>
					<author initials="R." surname="Almi" fullname="R. Alimi"/>
					<author initials="R." surname="Penno" fullname="R. Penno"/>
					<author initials="Y." surname="Yang" fullname="Y. Yang"/>
					<author initials="S." surname="Kiesel" fullname="S. Kiesel"/>
					<author initials="S." surname="Previdi" fullname="S. Previdi"/>
					<author initials="W." surname="Roome" fullname="W. Roome"/>
					<author initials="S." surname="Shalunov" fullname="S. Shalunov"/>
					<author initials="R." surname="Woundy" fullname="R. Woundy"/>
					<date month="September" year="2014"/>
				</front>
				<seriesInfo name="RFC" value="7285" />
			</reference>
		</references>
	</back>
</rfc>

PAFTECH AB 2003-20262026-04-24 04:24:25