Re: [pntaw] Real-time media over TCP

<> Fri, 11 October 2013 12:26 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id AFF7621E80FB for <>; Fri, 11 Oct 2013 05:26:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -6.599
X-Spam-Status: No, score=-6.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id Qis-wLo8j5CS for <>; Fri, 11 Oct 2013 05:26:47 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id F2BB921E81B8 for <>; Fri, 11 Oct 2013 05:26:36 -0700 (PDT)
Received: from ([]) by (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with ESMTP id r9BCLcox023472 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=OK); Fri, 11 Oct 2013 15:21:39 +0300
Received: from ([]) by ([]) with mapi id 14.03.0136.001; Fri, 11 Oct 2013 12:21:38 +0000
From: <>
To: <>, <>, <>, <>
Thread-Topic: [pntaw] Real-time media over TCP
Date: Fri, 11 Oct 2013 12:21:37 +0000
Message-ID: <>
References: <> <> <BLU405-EAS183E36A927CA42270B6936D93300@phx.gbl> <> <> <> <> <00ca01cec387$f881cae0$e98560a0$> <BLU406-EAS274696C3D9DFE505F96B8E393130@phx.gbl> <004201cec44f$381a47f0$a84ed7d0$> <> <003b01cec511$27e1abe0$77a503a0$> <> <> <004e01cec5df$cf8daaf0$6ea900d0$>
In-Reply-To: <004e01cec5df$cf8daaf0$6ea900d0$>
Accept-Language: en-US
Content-Language: en-US
x-tituslabs-classifications-30: TLPropertyRoot=Nokia; Confidentiality=Nokia Internal Use Only; Project=None;
x-headerinfofordlp: None
x-tituslabs-classificationhash-30: VgNFIFU9Hx+/nZJb9Kg7IhueGIqUfGX1Vo3TN0QuXNLYJ0nYlxFdLFJ5gcB/PGe53F84VK518ganGlutIy+o0MU6sTNCUH7/ZKSzG1tsY08YZ1WSe3114qbZYLHJo/sijV3LmoKgzfDvxeg6LXMqY0XjGFDVD13ObRalSFs0aBBTUObDVKdYN/pUpib2TAy6Ie0vW48/ap31ZEtJhVVVpx2PW4Gb8laD1xJakbzopy9luigbwLJJQAWEdev5+7Kn
x-originating-ip: []
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Nokia-AV: Clean
Subject: Re: [pntaw] Real-time media over TCP
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "Discussion list for practices related to proxies, NATs, TURN, and WebRTC" <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Fri, 11 Oct 2013 12:26:54 -0000

Hi Partha,

Parthasarathi R [] wrote:
> Hi all,
> As I mentioned below, ICE-TCP is not replacement for TURN but ICE-TCP
> helps for the browser-to-browser media flow without middle box (TURN
> Server).
> Also, please note that both browsers behind UDP blocked firewall is not the
> worst case scenario for WebRTC firewall requirements. The actual worst case
> scenario is that both browsers are behind HTTP only firewalls and in this
> scenario, both TURN server and ICE-TCP will not work. There is a need of one
> more solution.

Agree. And we need to consider that BOTH endpoints may be behind such firewalls.
> AFAIK, HTTP allowing firewall is not happen by mis-configuration but it is
> policy of the given network. It is more appropriate to pass the media over
> HTTP based mechanism rather than finding the workarounds. The advantage
> with Media over HTTP is that HTTP friendly firewall shall filter out media from
> HTTP traffic if required. IMO, Media over HTTP based mechanism has to be
> used for HTTP only firewall (Sec 3.2.3 of
> draft-ietf-rtcweb-use-cases-and-requirements) requirement and ICE-TCP
> shall be used for (Sec 3.2.3 of draft-ietf-rtcweb-use-cases-and-
> requirements)
> requirement.

So, what is the overall set of traversal / connectivity / address gathering mechanisms the browser should support that you are advocating? Mine is:

1.) UDP host candidates (native interface) - MUST
2.)UDP server-reflexive candidates (STUN) - MUST
3.) UDP relay candidates via UDP (TURN) - MUST
4.) UDP relay candidates via TCP (TURN) - MUST
5.) UDP relay candidates via some HTTP/TLS compatible transport (TURN) - MUST/SHOULD
   (TLS via HTTP CONNET or TURN over WebSockets have been proposed.)
6.) TCP based candidates (ICE-TCP) - MAY/SHOULD

I believe 1.), 2.) and 3.) we all have consensus on, probably even on 4.). What we are discussing on this list is whether and how to do 5.), and how important 6.) is. 

My opinion is that 5.) becomes necessary due to the HTTP-limited environments you mention above. So the communication needs to be compliant with HTTP and its upgrade mechanisms. 6.) I see as an optimization to 4.) in cases where you can't do UDP but can establish outgoing TCP connections and the other peer can actually receive them. But that optimization does not hold very often, since most of the time browsers are in networks where they can't receive TCP connections from the "outside world". So that's why I see it as MAY or SHOULD. You may argue that often browsers may talk to gateways or central points that are reachable by TCP, and in those scenarios ICE-TCP might make sense.