6CN: IPv6-Centric to Cache, Analyze and Route Videos

http://6cn.io Sunnyvale, California (origin server)


Streaming video

Video streaming is usually done by two incompatible systems (DASH and HLS described in other tabs) but share the concept of splitting a long movie in small video sequences. The duration of each sequence is usually small (1 to 5 seconds) in order to allow quick start (once a couple of chunks are preloaded) as well as sliding quickly through the video. As there are usually multiple representation of one movie (language, resolution, required bandwidth, ...), there will be multiple video chunks for the same video segment.

Introduction to 6CN

In the usual system, the video chunks are in the same file and the browser accesses them by fetching a specific byte range or by using URI with some parameters.

In the 6CN (Content Networking for Delivery and Caching), each video chunk has its own IPv6 address (which can vary based on the cache the chunk is located).

All IPv6 addresses are generated in a special way, you can try to decode , or encode them ;-). The encoding scheme is described in a specific format and there is a tool to edit this format.

Putting semantics in IPv6 addresses also opens the door for NetFlow-based analytics by the provider even when chunks are encrypted. The addressing scheme used by this demo is described below (and look at the impressive number of videos which can be encoded in a single /64):

You have access to a limited set of short animated videos and 30-minute long presentations from the March 2016 Research Symposium by Cisco & Polytechnique Paris.


You may also view a live channel through a 6CN proxy.


You may want to access some Over-The-Top (OTT) videos from DailyMotion/Metacafe/Vimeo/.. (with a 6CN proxy).

After you have done your selection, please go to either HLS or DASH tab in order to get more information and to actually play the movie.

6CN community videos

On this page you can find a couple of videos uploaded by the 6CN community.

You can also upload your own videos.

There are 16 videos in our 6CN video store. Feel free to click on any randomly selected video below to play it with some IPv6 information being displayed.


Sunset in Mauritius Feb 14 2017

2017-02-17 (217 view(s))
41 IPv6 addresses
Uploaded by: Facebook user

Mr.Nakhjavani-Saadi

2017-03-06 (207 view(s))
127 IPv6 addresses
Uploaded by: Facebook user

6CN Session with Mark Townsley

2017-02-21 (230 view(s))
29 IPv6 addresses
Uploaded by: Facebook user

Flying over the San Francisco Bay (fast forward)

2017-01-23 (270 view(s))
85 IPv6 addresses
Uploaded by: Facebook user

Cisco Live ! Las Vegas 2017 BRKRST-2616 session

2017-06-26 (201 view(s))
71 IPv6 addresses
Uploaded by: Facebook user

Sooriland - Pesare Shoja

2017-03-06 (197 view(s))
201 IPv6 addresses
Uploaded by: Facebook user

Drone Racing in Alsace

2017-02-17 (229 view(s))
273 IPv6 addresses
Uploaded by: Facebook user

Drone Racing in Alsace

2017-02-17 (197 view(s))
231 IPv6 addresses
Uploaded by: Facebook user

Candide Tovex - One of theses days

2017-02-21 (196 view(s))
329 IPv6 addresses
Uploaded by: Facebook user

BRKIP6-2616 people entering the room

2017-02-21 (182 view(s))
41 IPv6 addresses
Uploaded by: Facebook user

"Downhill" ski in Belgian High Fenns

2017-01-23 (233 view(s))
131 IPv6 addresses
Uploaded by: Facebook user

Freeride in the Alps

2017-02-20 (203 view(s))
601 IPv6 addresses
Uploaded by: Facebook user

Please report copyrighted or unsuitable videos to abuse department.

Dynamic Adaptive Streaming over HTTP with 6CN

Dynamic Adaptive Streaming over HTTP (DASH), also known as MPEG-DASH, is an adaptive bitrate streaming technique that enables high quality streaming of media content over the Internet delivered from conventional HTTP web servers (from Wikipedia).. A media presentation description (MPD also known as 'manifest') describes segment information (timing, URL, media characteristics like video resolution and bit rates). The MPD file used by this demonstration can be seen in another tab.

In 6CN, each video chunk is identified an individual IPv6 address which depends on the cache location. DASH manifest is accessed through its unique IPv6 address (which can be in the DNS). DASH player gets chunk individual addresses from the manifest.

DASH video cannot be played on Apple Safari or i-devices.

DASH Adaptative Quality

IPv6 address of video sequence:

This video is encoded in multiple video bandwidths and resolutions and the DASH player will select the one which fits into the available bandwidth, so, changing from one series of IPV6 addresses (hum video chunks) to another one based on available bandwidth.

DASH Manifest

Here is the content of the DASH Manifest at http://[]/

            

DASH Manifest Example

Here is an example of the DASH Manifest at http://[2604:1380:1000:86ed:4000:0100:0F80:0000]/
<?xml version='1.0' encoding='UTF-8'?>
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" maxSegmentDuration="PT0H0M2.048S" mediaPresentationDuration="PT0H30M36.608S" minBufferTime="PT1.500S" profiles="urn:mpeg:dash:profile:full:2011" type="static">
 <ProgramInformation moreInformationURL="http://gpac.sourceforge.net">
  <Title>Session9_MarkTownsley processed by MP4box and dash2CN.py for Cisco 6CN</Title>
 </ProgramInformation>

 <Period duration="PT0H30M36.608S">
  <AdaptationSet bitstreamSwitching="true" lang="eng" maxFrameRate="30000/1001" maxHeight="720" maxWidth="1280" par="16:9" segmentAlignment="true">
   <SegmentList>
    <Initialization sourceURL="http://[2604:1380:1000:86ed:4000:100:f80:ffff]" />
   </SegmentList>
   <Representation bandwidth="3081296" codecs="avc3.640032" frameRate="30000/1001" height="720" id="1" mimeType="video/mp4" sar="1:1" startWithSAP="1" width="1280">
    <SegmentList duration="58050" timescale="30000">
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:f91:1]" />
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:f91:2]" />
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:f91:3]" />
     [..]
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:f91:3b3]" />
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:f91:3b4]" />
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:f91:3b5]" />
    </SegmentList>
   </Representation>
   <Representation bandwidth="1118545" codecs="avc3.64001f" frameRate="30000/1001" height="360" id="2" mimeType="video/mp4" sar="1:1" startWithSAP="1" width="640">
    <SegmentList duration="58050" timescale="30000">
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:fa1:1]" />
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:fa1:2]" />
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:fa1:3]" />
     [..]
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:fa1:3b3]" />
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:fa1:3b4]" />
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:fa1:3b5]" />
    </SegmentList>
   </Representation>
   <Representation bandwidth="592009" codecs="avc3.64001f" frameRate="30000/1001" height="360" id="3" mimeType="video/mp4" sar="1:1" startWithSAP="1" width="640">
    <SegmentList duration="58050" timescale="30000">
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:fb1:1]" />
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:fb1:2]" />
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:fb1:3]" />
     [..]
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:fb1:3b3]" />
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:fb1:3b4]" />
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:fb1:3b5]" />
    </SegmentList>
   </Representation>
   <Representation bandwidth="203675" codecs="avc3.640016" frameRate="30000/1001" height="224" id="4" mimeType="video/mp4" sar="224:225" startWithSAP="1" width="400">
    <SegmentList duration="58050" timescale="30000">
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:fc1:1]" />
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:fc1:2]" />
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:fc1:3]" />
     [..]
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:fc1:3b3]" />
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:fc1:3b4]" />
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:fc1:3b5]" />
    </SegmentList>
   </Representation>
   <Representation bandwidth="114030" codecs="avc3.640016" frameRate="30000/1001" height="224" id="5" mimeType="video/mp4" sar="224:225" startWithSAP="1" width="400">
    <SegmentList duration="58050" timescale="30000">
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:fd1:1]" />
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:fd1:2]" />
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:fd1:3]" />
     [..]
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:fd1:3b3]" />
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:fd1:3b4]" />
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:fd1:3b5]" />
    </SegmentList>
   </Representation>
  </AdaptationSet>
  <AdaptationSet lang="eng" segmentAlignment="true">
   <Representation audioSamplingRate="48000" bandwidth="319503" codecs="mp4a.40.2" id="6" mimeType="audio/mp4" startWithSAP="1">
    <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2" />
    <SegmentList duration="98304" timescale="48000">
     <Initialization sourceURL="http://[2604:1380:1000:86ed:4000:100:ff0:ffff]" />
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:ff2:1]" />
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:ff2:2]" />
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:ff2:3]" />
     [..]
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:ff2:37f]" />
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:ff2:380]" />
     <SegmentURL media="http://[2604:1380:1000:86ed:4000:100:ff2:381]" />
    </SegmentList>
   </Representation>
  </AdaptationSet>
 </Period>
</MPD>

HTTP Live Streaming video with 6CN

HTTP Live Streaming (also known as HLS) is an HTTP-based media streaming communications protocol implemented by Apple Inc. as part of its QuickTime, Safari, OS X, and iOS software (from Wikipedia). All video chunks are described in a M3U8 (MPEG version 3.0 URL UTF-8) file which can be seen in another tab.

In 6CN, each video chunk is identified an individual IPv6 address which depends on the cache location. DASH manifest is accessed through its unique IPv6 address (which can be in the DNS). DASH player gets chunk individual addresses from the manifest.

HLS Adaptative Quality

IPv6 address of video chunk:
Unavailable on your browser

This video is encoded in multiple video bandwidths and resolutions and the HLS player will select the one which fits into the available bandwidth, so, changing from one series of IPV6 addresses (hum video chunks) to another one based on available bandwidth.


HLS M3U8

Here is the content of the master M3U8 file at http://[]/


              

Here is the content of the first secondary M3U8 file at


            

HLS M3U8 example

Here is an example of the master M3U8 file at http://[2604:1380:2000:d010:0:4280::]:8001/

#EXTM3U
#CSM
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:BANDWIDTH=237600,CODECS="avc1.42001E,mp4a.40.2",RESOLUTION=256x144
http://[2604:1380:2000:d010:0:4280:2440:0]:8001/
#EXT-X-STREAM-INF:BANDWIDTH=655600,CODECS="avc1.4D001F,mp4a.40.2",RESOLUTION=512x288
http://[2604:1380:2000:d010:0:4280:2530:0]:8001/
#EXT-X-STREAM-INF:BANDWIDTH=1205600,CODECS="avc1.4D001F,mp4a.40.2",RESOLUTION=768x432
http://[2604:1380:2000:d010:0:4280:2620:0]:8001/
#EXT-X-STREAM-INF:BANDWIDTH=1535600,CODECS="avc1.4D001F,mp4a.40.2",RESOLUTION=854x480
http://[2604:1380:2000:d010:0:4280:2720:0]:8001/
#EXT-X-STREAM-INF:BANDWIDTH=2085600,CODECS="avc1.4D001F,mp4a.40.2",RESOLUTION=1024x576
http://[2604:1380:2000:d010:0:4280:2820:0]:8001/
#EXT-X-STREAM-INF:BANDWIDTH=3405600,CODECS="avc1.4D001F,mp4a.40.2",RESOLUTION=1280x720
http://[2604:1380:2000:d010:0:4280:2920:0]:8001/
              

Here is the content of the first secondary M3U8 file at http://[2604:1380:2000:d010:0:4280:2440:0]:8001/

#EXTM3U
#EXT-X-TARGETDURATION:11
#EXT-X-VERSION:3
#EXT-X-DISCONTINUITY-SEQUENCE:0
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-DISCONTINUITY
#EXTINF:11,
http://[2604:1380:2000:d010:0:4280:240b:0]:8001/
#EXTINF:9.52,
http://[2604:1380:2000:d010:0:4280:2409:1]:8001/
#EXT-X-DISCONTINUITY
#EXTINF:11,
http://[2604:1380:2000:d010:0:4280:240b:2]:8001/
              

Analytics based on NetFlow/IPFIX records

As IPv6 addresses encode several information about the videos (content identification, duration, quality profile, ...), NetFlow/IPFIX can be used in the network to collect data about the video being played through the network.

Please select one of the vantage point to display data in the last 24 hours.

Analytics powered by Panda

Panda is an open source by the Linux Fundation for big data and analytics, see http://pnda.io. Input of Panda can be Netflow/IPFIX and using big data analytics (MAP REDUCE) on a Hadoop storage, can produce graphs about the 6CN utilization.

6CN and Content Delivery Network (6CN)

As 6CN is plain HTTP, it is compatible with most (if not all) CDN.

By clicking on this link, you will be redirected to a Cisco Open Media Distriction CDN with cache in Amsterdam: http://edge.demo.6cn_cl.6cn.solutions/?cdn=omd-ams.