• Digital Multimedia, 2nd edition
• Nigel Chapman & Jenny Chapman
• Chapter 17
• This presentation © 2004, MacAvon Media Productions
Multimedia and Networks
• Rules governing the exchange of data over networks
• Conceptually organized into stacked layers– Application-oriented services (e.g. file
transfer, Web browsing)– Transfer of raw data– Physical signals over wires, optical fibres, etc.
Protocols
591
• TCP/IP networks, including the Internet, are packet-switched networks– Messages split into small pieces called
packets, sent separately– Messages are multiplexed– Enables network bandwidth to be shared
efficiently between many messages
Packets
591
• Internet Protocol, defines– Basic unit of transfer, datagram– Mechanism for getting datagrams from
source to destination host through a network of networks, via routers
• Hosts are identified by IP addresses– Set of four numbers, uniquely identifying
the network and host
IP
592–593
• Attempts to deliver each datagram individually from source to destination host
• Datagrams not delivered after specified time are discarded– Message may arrive with some packets
missing
• Routes calculated dynamically– Packets may arrive in the wrong order
IP
593
• Transmission Control Protocol
• Provides reliable delivery of sequenced packets– Requests retransmission of missing packets– Puts packets back into correct order
• Based on acknowledgements, using a sliding window of unacknowledged packets– May lead to some packets being sent more than
once
TCP593–594
• Packets must be sent to the right application (e.g. Web browser, not email client)– IP address only identifies right host
• IP address extended with a port number, identifying an application running on the host
• IP address + port number = transport address
Transport Addresses
595
• User Datagram Protocol
• Ensures packets are delivered to right application– Uses transport addresses
• Does not guarantee delivery– Suitable for networked multimedia where
lost packets more acceptable than overhead of TCP
UDP
595–596
• Real-Time Transport Protocol
• Runs on top of UDP, adds extra features for sequencing etc
• Header identifies the type of payload (video, audio, etc)
– Format of payload optimized for the type of data
• Sequence numbers and timestamps used to reorder packets and synchronize separately transmitted streams
RTP596–597
• Unicast – server sends a copy of e.g. video data stream to every client– Many copies of the data sent over network
• Multicast – server sends a single copy, which is only duplicated when necessary, when routes to different clients diverge– Hosts must be assigned to host groups, using a
range of reserved IP addresses– Needs enhanced routers
Multicasting597–599
Unicasting and Multicasting
598
• HyperText Transport Protocol
• Client opens TCP connection to the server– Server's name is usually extracted from a
URL, mapped to an IP address via DNS
• Client sends a request and receives a response– Requests and responses are both messages
HTTP
600–601
• String of 8-bit characters
• Request line (request) or status line (response)
• One or more headers
• Blank line
• Body (optional)
HTTP Messages
601
• Request line
– Method – name of service being requested
• e.g. GET
– Identifier – resource being requested
• e.g. path name of a file
– Version
• e.g. HTTP/1.1
• e.g. GET DMM2/links/index.html HTTP/1.1
HTTP Requests
601
• Header name : arguments• Host: www.digitalmultimedia.org
• Connection: keep-alive
• User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/85 (KHTML, like Gecko) Safari/85
• Accept: */*
• Accept-Language: en-us, ja;q=0.33, en;q=0.67
• etc
Headers
601–602
• Status line– Protocol version– Numerical status code
• 200 = OK, 400 = bad request, 404 = not found, etc
– Status description
• e.g. HTTP/1.1 200 OK
HTTP Responses
602–603
• Headers – same format as for requests– e.g. Server: Apache/1.3.27 (Darwin)
• Body contains data, e.g. HTML code of a requested page
HTTP Responses
602
• Copies of pages that have been retrieved are kept in a cache on user's machine or proxy– How to tell if version on server is newer than
version in the cache?
• If-Modified-Since header in conditional request
• Status = 304, Not Modified– Browser displays page from cache
Caching
604–605
• Real Time Streaming Protocol• 'Internet VCR remote control'
– Start, stop, pause media stream– Go to point identified by timecode– Schedule time to start display
• Messages syntactically similar to HTTP• Data stream transmitted separately
(using RTP)
RTSP
606
• Quantifies the amount of– Delay– Jitter– Packet loss– an application can tolerate
• ATM (Asynchronous Transfer Mode) networks can offer QoS guarantees
Quality of Service (QoS)
609–611
• Allows an HTTP server to communicate with other resources (e.g. databases) to generate Web pages dynamically
• CGI (Common Gateway Interface)– Receives data from HTTP request (e.g.
form data)– Returns HTTP response
• PHP, ASP, JSP, ColdFusion, etc
Server-side Computation
611–614