Home

buffering

Buffering is the temporary storage of data in a buffer to accommodate differences in data production and consumption rates, or to absorb variability in data arrival times. Buffers are used across computing, networking, and multimedia to improve smoothness and efficiency. Common contexts include network traffic management, streaming video and audio, disk and memory I/O, and digital signal processing. A buffer can be in memory, on disk, or in hardware.

In many systems, a producer writes data into the buffer and a consumer reads from it. A

In streaming media, buffering involves preloading a portion of content before playback begins and sustaining a

Issues and optimization include bufferbloat, where excessive buffering increases latency, and buffer underrun, where insufficient data

circular
or
ring
buffer
is
a
common
structure
that
allows
continuous
reuse
of
space.
The
size
of
the
buffer
determines
latency
and
throughput:
larger
buffers
can
absorb
longer
variations
but
introduce
more
delay,
while
smaller
buffers
reduce
latency
but
may
lead
to
underflow
and
stalling
if
the
data
source
is
variable.
buffer
during
playback
to
compensate
for
network
jitter.
In
storage
systems,
buffers
between
devices
smooth
out
transfer
rates,
while
in
CPU
and
I/O
subsystems,
operating
system
and
hardware
buffers
hide
latency
of
slower
devices.
causes
interruption.
Techniques
include
adaptive
bitrate
streaming,
dynamic
buffer
sizing,
congestion
control,
and
quality
of
service
policies
to
balance
latency,
throughput,
and
reliability.