Chapter 4 - Communication
Chapter 4 - Communication
Introduction
1. Berkley Sockets
an example is the socket interface as used in Berkley UNIX
a socket is a communication endpoint to which an application
can write data that are to be sent over the network, and from
which incoming data can be read.
socket primitives for TCP/IP
connection-oriented communication pattern using sockets
The Message-Passing Interface (MPI)
sockets were designed to communicate across
networks using general-purpose protocol stacks such
as TCP/IP
they were not designed for proprietary protocols
developed for high-speed interconnection networks;
of course portability will suffer
MPI is designed for parallel applications and tailored
for transient communication
MPI assumes communication takes place within a
known group of processes, where each group is
assigned an identifier (groupID)
each process within a group is also assigned an identifier
(processID)
a (groupID, processID) identifies the source or destination
of a message, and is used instead of a transport-level
address
Message-Oriented Persistent Communication
new applications
multimedia will be pervasive in few years (as graphics)
storage and transmission
e.g., 2 hours uncompressed HDTV (1920×1080) movie: 1.02
TB (1920×1080x3x25x60x60x2)
videos are extremely large, even compressed
continuous delivery
e.g., 30 frames/s (NTSC), 25 frames/s (PAL) for video
guaranteed Quality of Service
admission control
Types of Media
two types
discrete media: text, executable code, graphics,
images; temporal relationships between data items
are not fundamental to correctly interpret the data
continuous media: video, audio, animation; temporal
relationships between data items are fundamental to
correctly interpret the data
a data stream is a sequence of data units and
can be applied to discrete as well as
continuous media
stream-oriented communication provides
facilities for the exchange of time-dependent
information (continuous media) such as
audio and video streams
timing in transmission modes
asynchronous transmission mode: data items are transmitted
one after the other, but no timing constraints; e.g. text transfer
synchronous transmission mode: a maximum end-to-end delay
defined for each data unit; it is possible that data can be
transmitted faster than the maximum delay, but not slower
isochronous transmission mode: maximum and minimum end-
to-end delay are defined; also called bounded delay jitter;
applicable for distributed multimedia systems
a continuous data stream can be simple or complex
simple stream: consists of a single sequence of data; e.g., mono
audio, video only
complex stream: consists of several related simple streams that
must be synchronized; e.g., stereo audio, video consisting of
audio and video (may also contain subtitles, translation to other
languages, ...)
Quality of Service (QoS)
QoS requirements describe what is needed from the underlying
distributed system and network to ensure acceptable delivery;
e.g. viewing experience of a user
for continuous data, the concerns are
timeliness: data must be delivered in time
volume: the required throughput must be met
reliability: a given level of loss of data must not be exceeded
quality of perception; highly subjective
QoS Management
can be static or dynamic
Static QoS Management Functions
specification
e.g., deterministic range for timeliness, volume and
reliability categories
negotiation
the application may accept lower level of QoS for
lower cost
admission control
if this test is passed, the system has to guarantee
the promised QoS
resource reservation
may be necessary to provide guaranteed QoS
Dynamic QoS Management Functions
monitoring
notices deviation from QoS level
at a certain level of granularity (e.g., every 100 ms)
policing
detect participants not keeping themselves to the contract
e.g., source sends faster than negotiated (e.g., 25 fps)
maintenance
sustaining the negotiated QoS
e.g., the system requires more resources
renegotiation
client tries to adapt – may be can accept lower QoS
MULTICAST COMMUNICATION