Subject: Review of draft-williams-exp-tcp-host-id-opt-07

From: S Moonesamy <[email-masked]>
Date: Sat, 30 Jan 2016 12:47:33 -0800

Hello,

I am reviewing draft-williams-exp-tcp-host-id-opt-07 for the 
Independent Stream.

Overall, the document is well-written.  I suggest reviewing the usage 
of the RFC 2119 key words as it makes the document look like a 
document about compliance.  The intended status of the document is 
"Experimental".  How long will this experiment last?

The Abstract states that "proposals discussed in the IETF [which] 
have identified benefits to more distinctly identifying the hosts 
that are hidden behind a shared address/prefix sharing device or 
application-layer proxy".  Is the sentence:

   (i)   misleading

   (ii)  one-sided

   (iii) any other alternative

I'll choose (ii) as the sentence mentions benefits only.  I did not 
see any mention of "IETF" in Section 1.  Why is "IETF" mentioned in 
the Abstract?  I looked at the proposals referenced in 
draft-williams-exp-tcp-host-id-opt-07 and they are from one of the 
authors of this draft and from the same companies.  Isn't that self-citation?

 From Section 1 of the draft:

   "The purpose of this document is to describe a TCP HOST_ID option
    that is currently deployed on the Internet using the TCP
    experimental option codepoint including discussion of related
    design, deployment, and privacy considerations."

I suggest focusing on the above if that is the purpose of the 
document.  Could the authors please explain which of the bullet 
points in Section 2 of RFC 4846 is applicable to this document?

   "Specification of multiple option formats to serve the purpose of
    host identification increases the burden for potential implementers
    and presents interoperability challenges as well.  This document
    defines a common TCP option format that supersedes all three of the
    above proposals."

Does that mean that Akamai, Cisco and France Telecom have agreed on a 
common TCP option format and have implemented that?

   "The option defined in this document uses the TCP experimental option
    codepoint sharing mechanism defined in [RFC6994] and is intended to
    allow broad deployment of the mechanism on the public Internet."

Is it the opinion of the authors of this draft that it isn't 
worthwhile to get IETF Consensus on a mechanism for broad deployment 
on the public Internet?

In Section 1.2:

   "In particular, documentation of the mechanism is expected to provide
    opportunities for engagement with a broader range of both application
    and middleware implementations in order to develop a more complete
    picture of how well the option meets the use-case requirements."

How does publication in the Independent Stream provide "opportunities 
for engagement"?

In Section 4.1:

   "The HOST_ID option value MUST correlate to IP addresses and/or TCP
    port numbers that were changed by the inserting host/device (i.e.,
    some of the IP address and/or port number bits are used to generate
    the HOST_ID)."

The above is a requirement for "fingerprinting".  The document then 
provides examples that satisfy the requirement.  I suggest making the 
requirement clear instead of taking a "requirement by example" approach.

In Section 6:

   "The content of the HOST_ID option SHOULD NOT be used for purposes
    that require a trust relationship between the sender and the receiver
    (e.g. billing and/or subscriber policy enforcement)."

Why shouldn't the HOST_ID be used for purposes that require trust 
relationships?  The sentence which follows the quoted text (see 
above) states that the "SHOULD" is a requirement.  From what I 
understand, the paragraph is explaining the difference between 
"SHOULD" and "MUST".  I got lost in reading the Security 
Considerations Section.

Section 7 states that NAT "is sometimes specifically intended to 
provide anonymity".  Are there any references for that?

   "The HOST_ID option MUST NOT provide client identification information
    that was not publicly visible in IP packets for the TCP flows processed
    by the inserting host, such as subscriber information linked to the IP
    address."

Why is the above a RFC 2119 "MUST NOT"?

Why is Section 8 relevant?  This draft is not intended to be an IETF 
specification.

"Fance" is misspelled.

Regards,
S. Moonesamy