Download Introduction

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Data analysis wikipedia , lookup

Corecursion wikipedia , lookup

Transcript
Introduction
Topics in Multimedia
Computing and Networking
Ketan Mayer-Patel
CS 294-9 :: Fall 2003
The medium is the message.
• Marshall McLuhan (1967)
• Themes of the course:
– In multimedia communication, how the
message arrives is often as important as what
the message is.
– The two are entangled.
• How the message arrives: Networking
• What the message is: Multimedia Encoding
CS 294-9 :: Fall 2003
Characterizing media data
• Continuous media is a bit more accurate.
–
–
–
–
–
–
Periodic
Robust
Often large
Correlated
Endless?
Video, audio, stock ticker?, depth?
• Compare with web pages.
– Web pages are definitely multimedia, but don’t
fit the characteristics of continuous media.
CS 294-9 :: Fall 2003
Video Taxonomy
Compressed
Tape
Digital Betacam
DVCPro (D-7)
DV
DVCAM
Digital-8
D-9
DVCPro50
Uncompressed
Streaming
Digital
MPEG-1
D-1 (CCIR 601)
MPEG-2
D-2
MPEG-4
D-5
M-JPEG
H.261
H.263+
Real
Sorenson
Cinepak
Indeo
Video for Windows
CS 294-9 :: Fall 2003
Analog
Betacam
VHS
S-Video
Video-8
Hi-8
Betamax
Audio Taxonomy
Compressed
Uncompressed
Speech-based
General
LPC-10E
CELP
GSM
ADPCM
Dolby AC-3
MPEG-1 L3
MPEG-2 AAC
DTS
SDDS
THX
MiniDisc (ATRAC)
CS 294-9 :: Fall 2003
m-law
A-law
Linear PCM
Network Basics
Throughput = Amount of
data arriving per unit time.
Delay
Source
Dest
Loss
Interpacket
Arrival Time
Jitter = Variance of
interpacket arrival
times
CS 294-9 :: Fall 2003
Problems of Delay
• Interactive applications
– Video conferencing
• Human communication starts to break down at
around 500 msec delays.
– Feedback loops
• Haptic interfaces
• Quality of Service
– Best effort and end-to-end mechanisms can do
little to control delay.
CS 294-9 :: Fall 2003
Problems of Jitter
• Buffer management
– Buffers are used to smooth jitter, but how big
should the buffer be?
– Unexpected jitter can lead to starvation.
– Over-provisioning buffers creates delay.
• Jitter is hard to bound even with QoS.
• Media jitter vs. packet jitter
– Variable bitrate media (where number of
packets for “unit” of media varies) can make
this relationship hard to model.
CS 294-9 :: Fall 2003
Problems of Throughput
• Estimating throughput is problematic.
– Media coding may be tunable, but generally
changes in quality are perceptually annoying.
– Throughput will often vary faster than feedback
delay which makes estimation hard.
• Multicast makes this worse.
• Scalable encoding is one solution path.
• QoS mechanisms are another.
CS 294-9 :: Fall 2003
Problems of Loss
• Effect of loss is very media and encoding
specific.
– Loss of one packet in a video stream can result
in the loss of multiple frames.
– Other packets received can be rendered useless.
• Goodput vs. Throughput
• Retransmission often not feasible.
• Encoding may be designed to alleviate
packet loss effects.
• Forward Error Correction
CS 294-9 :: Fall 2003
Administrivia
• Who am I?
– [email protected]
– On campus Mon. and Wed. (629 Soda)
• Who are you?
• Class web page
– http://inst.eecs.berkeley.edu/~cs294-9
– Schedule of topics and readings posted here.
• Need to sign up for presenting papers.
– More on this next week.
• Reading for next week.
– Jim Blinn’s article on NTSC
CS 294-9 :: Fall 2003
TCP/UDP Review
•
•
•
•
Transport protocols on top of IP
TCP: ordered, byte-stream, reliable
UDP: datagram, unreliable, unordered
Programming API: sockets
– Originally from UNIX, but available in
Windows as WinSock and Java
• Network byte-order is big endian .
CS 294-9 :: Fall 2003
UDP Packet Format
32 bits
Src Port #
Dest Port #
Length
Checksum
Data
CS 294-9 :: Fall 2003
UDP Review
• Connectionless
– No communication necessary other than the
datagram itself.
• Unreliable
– No guarantee or feedback whether data got ther
or not.
• Unordered
– Packets may arrive in any order
– Limit on delay: 1 minute (comes from IP)
CS 294-9 :: Fall 2003
TCP Packet Format
32 bits
Src Port #
Dest Port #
Sequence #
Acknowledgement #
Hdr UnLen. used
Flags
Window Size
Checksum
Urgent Ptr
Options
Data
CS 294-9 :: Fall 2003
TCP Lifecycle
• 3-way handshake
– Establishes connection.
• Data transfer
– Congestion controlled
– Reliable
– In order.
• FIN
– Connection teardown.
CS 294-9 :: Fall 2003
3-way handshake
• One side must be “listening” for a connection.
– Whoever is listening is “the server.”
• Client sends a SYN packet.
– SYN flag is set.
– Seq. # is randomly chosen starting byte number.
• Server sends back SYN-ACK packet.
– SYN flag is set, ACK flag is set.
– Seq. # is set and Ack # reflects client’s Seq. #
• Client sends back ACK
CS 294-9 :: Fall 2003
Data Transfer
• Full duplex connection.
– Both sides can send data simultaneously.
• Seq. # set to byte number of first byte.
• Ack # set to next byte expected.
• Receiver generates an ACK even if it doesn’t
have data to send back.
– Some implementations delay sending ACK to
optimize piggyback case.
– In general, implementations expected to generate
one ACK for each data packet received.
CS 294-9 :: Fall 2003
Reliability
• Sender maintains data until acknowledged.
– This is done at the OS. The application is free from this
responsibility.
• Sender estimates RTT from ACK’s.
• Timeout values dynamically calculated from RTT and
RTT variance.
• If timeout occurs, data retransmitted.
• Holes in the byte stream are possible.
– Receiver still generates ACK, but ACK # reflects next byte needed in seq.
– Multiple ACK’s used to retransmit quickly.
CS 294-9 :: Fall 2003
Transfer Example
Seq. 0
Seq. 10
Seq. 20
Seq. 30
Ack 10
Ack 10
Ack 10
Timeout
Seq. 10
Ack 40
CS 294-9 :: Fall 2003
Flow Control
Sender
Receiver
Application
Application
OS
TCP
Last ACK’d byte
First un-ACK’d byte
Recv Buffer
Send Buffer
Free Space
OS
TCP
Last un-ACK’d byte
Recv. Window
Recv. Window is advertised to
the sender in ACK.
CS 294-9 :: Fall 2003
Congestion Control
• Basic question: how fast to send?
– Too slow: underutilize network
– Too fast: no one gets anything useful through
– Not responsive: congestion collapse
• TCP congestion control is window-based.
–
–
–
–
TCP maintains a “window” of data in the network.
Successful transmissions allow window to increase.
Packet drops cause window to shrink.
Reliability feedback and congestion control coupled
together (may not have been the best idea).
CS 294-9 :: Fall 2003
Slow Start
• Slow Start
– When starting, don’t know what the window should
be, so probe for capacity.
– Initial window: 1 segment size
• A “segment” is a set number of bytes (i.e., packet size).
– For every sucessful ACK, increase window by 1
segement size.
– Doubles window size every RTT.
CS 294-9 :: Fall 2003
Slow Start Illustrated
Seq. 0
Ack 10
Seq. 10, 20
Ack 20, 30
Seq. 30, 40, 50, 60
Ack 40, 50, 60, 70
CS 294-9 :: Fall 2003
Congestion Avoidance
• Eventually slow-start results in a packet
drop. This establishes “ssthresh”.
• Ssthresh set at 1/2 of current window.
• Current window shutdown to 1 segment.
• Data retransmitted.
• Slow-start begins again.
• When window gets back to ssthresh, every
ACK results in window += 1/window.
• Additive increase, multiplicative decrease.
CS 294-9 :: Fall 2003
Window Size
AIMD Illustrated
ssthresh
ssthresh
ssthresh
Time
CS 294-9 :: Fall 2003
Misc. TCP Oddities
• Window is actually minimum of receiver
advertised window and congestion window.
• Duplicate ACK’s used to detect congestion
before actual timeout. (Fast retransmission)
• Special-case calculation of congestion
window after fast retransmission to allow
new data to be sent. (Fast recovery)
• Lots of tweaks and options (SACK, T/TCP)
CS 294-9 :: Fall 2003
Multimedia and TCP/UDP
• Streaming multimedia rarely uses TCP. Why?
– Retransmission is pointless
• By the time data is recovered, too late.
– AIMD congestion makes jitter and throughput changes
unbearable.
• So, why did we just review TCP?
– Everything else in the world is TCP.
– How non-TCP traffic affects TCP traffic is an important
question.
• In general, streaming media protocols built on
top of UDP.
CS 294-9 :: Fall 2003