Subject: [tram] Review of draft-ietf-tram-turn-server-discovery-01

From: tshields <[email-masked]>
Date: Mon, 26 Jan 2015 14:27:10 -0700

Overview

Overall this draft was very clear and straight-forward. There was one
more important question that jumped out at me as I was reviewing; it
was somewhat unclear to me whether or not both mechanisms for TURN
server discovery are really required, which one is prefered, and why.

Major Issues/Questions:

Section 1, Paragraph 2

> The reason for providing two mechanisms is to maximize the 
> opportunity for discovery, based on the network in the which the 
> TURN client sees itself.

So would someone implementing this use both mechanisms in order to
maximize the opportunity for discovery, or would they choose the one
that makes sense for them? Am I breaking the standard if I just
implement one? I think the wording here could be a little more
explicit. If I MUST implement both mechanisms then the document should
make that clear.

Section 3, Paragraph 1 does specify that the auto discovery algorithm
MUST try service resolution first and then Anycast (steps 2 & 3). So
at this point it becomes clear that both mechanisms must be implemented.

However, it seems to me (based on the document) that Discovery using
Anycast is a much simpler, more "elegant" solution. Does the document
really care that I try to use Discovery Using Service Resolution
first, or may I choose the order that makes sense to me as an
implementer? If it does care, I think the reason should be stated in
Paragraph 1 of Section 3 (or somewhere else that makes sense).

Section 4.2.1, Paragraph 3

> If this lookup fails, the discovery procedure is aborted without a 
> result.

If this lookup fails then we give up entirely with dicovering a TURN
server, or just for this domain/interface/address family combination?
Do we move on to Discovery using Anycast at this point? Should be made
more clear.

Minor Issues/Questions:

Section 4, Paragraph 4

> On hosts with more than one interface or address family (IPv4/v6), 
> the TURN server discovery procedure has to be run for each 
> combination of interface and address family.

Out of curiosity, what is the maximum number of interfaces and address
families that could be expected? Is there any concern that checking
every combination of interface and address family could be too
expensive of a task? My gut tells me it's not a problem but I thought
I would at least ask the question.

Nits:

Section 3, Paragraph 3

> Service Resolution : The TURN client attempts to perform TURN 
> service resolution using the DNS domain name that the host belongs 
> to OR the hosts' global IP address.

Is it really multiple hosts ("hosts'") or a is it a single host
("host's"). Also, im my opinion, the sentence can be altered to make
it slightly more readable:

"Service Resolution : The TURN client attempts to perform TURN service
resolution using the host's DNS domain OR the host's global IP address."

- -- 
Troy Shields
Developer of Awesome | Jive Communications, Inc.
Jive.com | [email-masked]