title: HLS(HttpLiveStreaming) vs RTP（Real-time Transport Protocol) on UDP for mobile P2P?
body: <p>I'm testing Audio/Video P2P connection between mobile devices.</p>
  
  <p>Studying WebRTC, I've noticed NAT traversal(uses STUN server) and UDP-hole-punching is the key to make P2P possible.</p>
  
  <p>On the other hand, I've noticed HLS(HttpLiveStreaming) on iOS devices is very optimized for A/V live streaming, and widely available even with Android4.x(3.x unstable)</p>
  
  <p>So, here is my question <strong>if I use HLS for mobile P2P</strong>:</p>
  
  <p>a) HLS is a protocol on TCP(HTTP) not UDP, so isn't there a performance drawback?</p>
  
  <p>See: <a href="https://stackoverflow.com/questions/6187456/tcp-vs-udp-on-video-stream">TCP vs UDP on video stream</a></p>
  
  <p>b) How about NAT traversal? Will it be easier since HLS is HTTP(port:80)?
  I have read wikipedia <a href="http://en.wikipedia.org/wiki/HTTP_Live_Streaming" rel="nofollow noreferrer">http://en.wikipedia.org/wiki/HTTP_Live_Streaming</a></p>
  
  <blockquote>
    <p>Since its requests use only standard HTTP transactions, HTTP Live
    Streaming is capable of traversing any firewall or proxy server that
    lets through standard HTTP traffic, unlike UDP-based protocols such as
    RTP. This also allows content to be delivered over widely available
    CDNs.</p>
  </blockquote>
  
  <p>c) How about android device compatibility? Is there a lot of problems to invoke StreamingLive distribution?</p>
  
  <p>Thanks.</p>