Forum Discussion

funkdaddy_31014's avatar
funkdaddy_31014
Icon for Nimbostratus rankNimbostratus
Oct 27, 2011

IOS HTTP Streaming through LTM

I'm trying to figure out how our LTM can be configured to optimally serve live IOS streams.

 

 

We have a server that is serving live HTTP streams for IOS devices. As I understand it, requests consist of a playlist index file (.m3u8) and then a bunch of segment files (.ts) that are downloaded thereafter. The segments are generally 10 sec each.

 

 

The HTTP Streaming Architecture is outlined on Apple's developer site .

 

 

Ideally, we'd like to configure the LTM to cache these short-lived files so that if multiple users are watching the same stream, they aren't all retrieving them from the server.

 

 

Anyone have an idea on how to best configure a profile to achieve this (we're on v10 running LTM 3900)?

 

 

Thanks so much for your time!

 

-Funkdaddy

 

  • This should be as simple as creating a custom HTTP Profile, Enable RAM Cache, and create an iRule to specify what to cache (if you skip this part it will try and cache everything which can get messy).

     

     

    I specify a custom HTTP Profile since all Virtual Servers that share the profile with RAM Cache enabled will all try and cache into the same reserved memory space, which can be counter productive if so many files are being cached that you are forcing it to drop the files that you really enabled it to cache.

     

     

    The Cache Commands are here: http://devcentral.f5.com/wiki/iRules.CACHE.ashx

     

     

    You will mainly be interested in CACHE::enable and CACHE::disable

     

     

    Hope this helps.