Title: AUDF Developer Grant project: QuickTime Streaming and IPv6
1AUDF Developer Grant project QuickTime Streaming
and IPv6
- Daniel Grimm
- Monash University
2ATcrc Applications Program
- Australian Telecommunications CRC
- Applications Program
- Next Generation Internet
3ATcrc Project 1.1
IPv6 Networking
Network handover performance
802.11
Multimedia Content Sources
GPRS, 3G, etc.
QoS Routing
Dis-similar Client Devices
Heterogeneous Networks
Next Generation Internet
4AUDF Grant
- AIM Make QuickTime Server (DSS) IPv6 capable
- Purpose Use for Demonstations of (Mobile) IPv6
- Video is challenging for networks
- Streaming Video slightly easier
- QuickTime Streaming supports many bandwidths
5Mac OS X IPv6
- 2001-2002
- Mac OS X10.1--10.1.5
- Darwin - recompiled kernel
- IPv6 support old KAME stack
- No IPv6 libraries in frameworks
- Used Linux instead for most work
- Mac for desktop, developer environment
6IPv6 mini tutorial
- 128 bits vs 32 bit IPv4 addresses
- IPv6 Dual host IPv4 IPv6
- IPv6 for all programming
- FFFF130.194.1.99
- Global 3ffe8001abcd1234567
- Local fe8024095fffe301234
- DNS supports IPv6 records - USE NAMES
- Reverse lookup an issue
7Streaming Server and Clients
8QuickTime Streaming Technology
- RTSP Real Time Streaming Protocol
- RTSP//server.monash/sample.mov
- Describe, Play, Stop
- TEXT messages
- TCP/IP transport
- RTP RealTime Transport Protocol
- UDP/IP
- IP can be IPv4 or IPv6
9Streaming Background
Session Description info available from the RTSP
Session
TCP
UDP
UDP
10RTSP sequence
DSS Streaming Server
11HTTP Streaming (Port 80)
- RTSP in HTTP
- Still TCP/IP traffic with larger packets
- RTP in HTTP
- Becomes RTP/HTTP/TCP/IP transport (not UDP/IP)
- More frequent acknowledgement packets
- Slightly larger packets. Performance drops
- HTTP (and multicast) ignored
12QuickTime/Darwin Streaming Server (DSS) Porting
to IPv6
- C Apple public source
- Harder than predicted
- CommonUtilitiesLib - 5 basic files
- 90,000 lines
- UInt32 for IP addresses
- Integer 0 or -1 to initialise
- Socket Hash use binary Integer functions
- Ongoing
13IPv4 to IPv6 changes
- IPv4 address and integer
- 10.0.0.1 00001010--00000001
- -1 as invalid IP address
- Socket Hash function relying on integer binary
functions - Text representations . vs
- Localhost 127.0.0.1 vs 1
14IPv6 Darwin Streaming Proxy
- Available now
- http//www.ctie.monash.edu.au/DSS-IPv6
- Supports IPv4 and IPv6 clients
- IPv6 used throughout
- Was C, converted to C
- Used socketcc class library
- 4000 lines of code
15Streaming Proxy and Clients
16Streaming Proxy - What it does
- IPv4 to IPv6 (or IPv4)
- RTSP modifies text
- RTP/UDP unchanged contents
- Supports Reliable UDP
- Supports media source IP different from RTSP
server
17Streaming Proxy
- Only tested on Linux
- Socketcc on
- MacOSX
- Linux and Solaris
- Should work on all!
18Proxy challenges
- Limited RTSP option support
- Newer QT features break it still
- QuickTime 6.x and DSS 4.1.2 Server issues
- Not robust!
- Security features disabled
19IPv6 Streaming (RTSP/RTP) Client programs
- MPEG4IP for Linux
- QuickTime SDK for Windows
- Local Bridge IPv6-IPv4 client for Windows XP
QuickTime - Java JMF JMStudio
20MPEG4IP for Linux IPv6 Client
- MPEG4IP opensource project
- RTSP/RTP streaming ISMA
- MPEG-4 player
- IPv6 enabled by 6net.org
- IPv6 Proxy support added
- Used for CTIE Mobile IPv6 demos
21MPEG4ip
22Windows XP and QuickTime SDK
- Two attempts
- Windows QuickTime SDK
- No IPv6 support for RTSP
- Local Bridge IPv6-IPv4 client for Windows XP
QuickTime player
23QuickTime on XP
24Local Bridge IPv6-IPv4 client
- Windows XP with normal QuickTime Player
- Local Bridge is a proxy for QT player
- IPv6 traffic in/out from XP
- Some minor performance issues
25XP local bridge proxy
26Java JMF JMStudio
- Java Media Framework (JMF)
- JMStudio - Sample Application
- RTP/UDP code supported IPv6
- JMStudio user interface
- Written to accept IPv4 address only
- No changes required using DNS names
27JMStudio
28Java JMF JMStudio
- Requires preferences set correctly for IPv6
- Requires reverse lookup on global IPv6 addresses
(host and server) - Proxy support hard coded
http//www.ctie.monash.edu.au/DSS-IPv6/jmf-ipv6
29Demo!
- No Demonstration!
- Looks the same as IPv4 QuickTime Streaming
- Use identical URL to request
- rtsp//server.apple.com/sample.mov
- SUCCESS
30QA
31IPv6 RTSP
RTSP/1.0 200 OK Server DSS/4.0
v410-Linux Content-Type application/sdp Content
-Base rtsp//geryon.ctie.monash.edu.au/test64.mp4
Session Description Protocol Owner/Creator,
Session Id (o) StreamingServer 3271633399
1051830515000 IN IP6 3ffe800112fc4 Session
Name (s) /test64.mp4
- DESCRIBE rtsp//geryon.ctie.monash.edu.au/test64.m
p4 RTSP/1.0 - Accept application/sdp
32IPv6 RTSP
RTSP/1.0 200 OK Server DSS/4.0
v410-Linux Transport RTP/AVPunicastclient_por
t1024-1025 source3ffe800112fc4server_port
6970-6971ssrc1659c123
- SETUP rtsp//geryon.ctie.monash.edu.au/test64.mp4
- /trackID2
- Transport RTP/AVPunicastclient_port1024-1025