Section 6 of 14 - Prev - Next
All sections - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14
everything.
Within ActiveMovie, there are GUID's for video formats, corresponding
to the FOURCC's or Four Character Codes used in Video for Windows.
These are specified in the file uuids.h in the Active Movie Software
Developer Kit (SDK). ActiveMovie needs to pass around GUID's that
correspond to the FOURCC for the video in an AVI file.
With proper programming, this should be hidden from end users but
ActiveMovie programmers need to know about GUID's.
Return to Top
What are the GUIDs for the Video for Windows Codecs?
Video for Windows codecs are identified by a thirty-two bit Four
Character Code (FOURCC). A Four Character Code is a thirty-two bit
value formed from the ASCII codes for four characters. Typically, the
four characters are a memnonic for the item identified. For example,
the popular Cinepak video codec is 'CVID'.
Microsoft has introduced 128-bit (16 byte) Globally Unique
Identifiers (GUIDs) for identifying everything in the
Microsoft Universe. Microsoft has established a mapping
procedure from the human readable Four Character Codes to
GUIDs for video codecs. Replace the "x"'s in the GUID
below with the 32-bit value built from the Four Character
Code. The Four Character Code is in 7-bit ASCII.
xxxxxxxx-0000-0010-8000-00AA00389B71
For example, the GUID for Radius Cinepak is:
44495643-0000-0010-8000-00AA00389B71
44 is the hexadecimal (base 16) ASCII code for 'D'
49 is the hexadecimal (base 16) ASCII code for 'I'
56 is the hexadecimal (base 16) ASCII code for 'V'
43 is the hexadecimal (base 16) ASCII code for 'C'
Note that the order of the characters is reversed from
naive expectation.
Return to Top
DirectShow
DirectShow is Microsoft's new name for ActiveMovie 2.0 Microsoft
has shifted to marketing ActiveMovie as an integral part of
DirectX.
Apparently DirectShow (ActiveMovie 2.0) will be released to the general
public as part of Direct X 5.0.
Return to Top
DirectDraw
DirectDraw, one of the components of DirectX, is a new Applications
Programming Interface (API) that is part of Windows 95 and Windows NT
4.0. DirectDraw allows programs to directly access video memory and
other hardware features in video display cards. Direct Draw also
defines new device drivers for graphic/video display adapters to
supersede the GDI display drivers. DirectDraw needs the new
device drivers.
DirectDraw consists of a new API and new hardware drivers known as
the Direct Draw Hardware Abstraction Layer (HAL).
In the Windows 3.1 Graphic Device Interface (GDI), an application
program never writes directly to the memory in a display card. It
writes to a buffer in main memory within Windows. GDI invokes a GDI
video device driver and copies the image from main memory to the video
memory of the video card. This multiple copying of the image
inevitably slows down the display.
The DirectDraw API provides a mechanism allowing appliation programs
to write directly into the video card's memory. It also provides a
mechanism to access various special features in video cards such as
color space conversion, hardware scaling, z-buffering, alpha blending,
and so forth.
Video card manufacturers must provide a DirectDraw driver for DirectDraw
to work with their card.
Microsoft's ActiveMovie uses DirectDraw to achieve faster playback of
AVI, QuickTime, and MPEG files.
There is extensive information on the DirectDraw and DirectX API's at the
Microsoft Web site.
The DirectX 3 SDK can be downloaded from the Microsoft Developer
Online Web site (6/28/97):
http://www.microsoft.com/msdn/
Select Microsoft SDKs from the Technical Information section, or point
your browser at:
http://www.microsoft.com/msdn/sdk/
Versions of DirectX
- DirectX 1
- DirectX 2
- DirectX 3
- DirectX 3A (latest as of 2/18/97)
- DirectX 5.0 (in development?)
- DirectX 6.0 (mentioned occasionally by Microsoft)
Return to Top
What is a driver?
Most often, driver refers to a software component that handles
control and communication with hardware in a computer. Most
but not all hardware device drivers run in a privileged mode
such as the Ring Zero mode of the Intel 80x86 processors.
Microsoft Windows uses the term driver to refer to several different
software components.
- Hardware Device Drivers
- Windows 3.x or 95 Virtual Device Drivers (VxD's)
- not all VxD's access hardware
- Microsoft Windows Installable Drivers
such as
- Media Control Interface or MCI Drivers
- Video for Windows Codecs (Compressor/Decompressors)
- Audio Codecs (Compressor/Decompressors)
Hardware Device Drivers include MS-DOS device drivers, DOS Terminate
and Stay Resident Programs that access hardware, Windows 3.x and 95
VxD's (Virtual Device Drivers) that access hardware, Windows DLL's
that access hardware but do not run in Ring Zero, Windows NT
kernel-mode device drivers, and the new Win32 Driver Model (WDM) drivers
for Memphis/Windows 98 and NT 5.0
Microsoft Windows Installable Drivers are Ring Three (Windows 95) or
user-mode (Windows NT) Dynamic Link Libraries (DLL's) with a single
entry point DriverProc(). MCI drivers, Video for Windows Codecs,
Microsoft Audio Compression Manager Codecs, and a variety of other
software components are Installable Drivers. Some installable
drivers are hardware drivers.
Return to Top
GDI Device Drivers
In Windows 3.1, and to a lesser extent Windows 95, the Graphic Device
Interface or GDI is the system that handles graphic display, including
putting bitmaps on the display monitor. Amongst other things, GDI
defines a set of GDI functions that application programs call such as
BitBlt(...) to display graphics on the screen. GDI also controls
printers and other graphic output devices.
Windows NT also provides a GDI system, but the underlying hardware
device drivers are different. Windows 3.1 GDI drivers won't work
under NT. Application programs written using the GDI API will usually
work under NT.
GDI is device independent. To achieve this, GDI uses GDI device
drivers loaded dynamically as needed.
The most commonly used GDI device driver is the DISPLAY device (for
display monitors). In Windows 3.1, this is specified by lines such
as:
display.drv=SUPERVGA.DRV
in the SYSTEM.INI file. SUPERVGA.DRV is a generic super vga graphic
display adapter driver shipped with Windows 3.1 SUPERVGA.DRV is a GDI
Device Driver
The printer driver is another common GDI device driver.
In Windows 3.1 or Windows 95 without DirectDraw, GDI handles display
of video frames on the display monitor.
GDI defines a set of standard functions exported by GDI Device
Drivers. A GDI Device Driver can also report that it does not support
a particular function.
Standard Functions for GDI Device Driver
Entry Name Description
01 BitBlt Transfer bits from src (source) to dest (destination) rect (rectangle)
02 ColorInfo Converts between logical and physical colors.
.
.
.
30 BitmapBits Sets, retrieves, copies bitmap data.
Video card manufacturers write and provide GDI Device Drivers for video cards.
When Video for Windows plays an AVI file, Video for Windows usually
uses the Media Control Interface (MCI) driver for AVI files
(MCIAVI.DRV). The MCI driver will call GDI to display each decoded
frame of video and WAVE to output the decoded audio to the sound card.
In Windows 95 or NT 4.0, ActiveMovie 1.0 has "renderers" which can
invoke GDI or DirectDraw depending on the situation to display the
decoded video frames. There are also audio renderers to output the
decoded audio from an AVI, QuickTime, or MPEG file.
Return to Top
Direct Draw Hardware Abstraction Layer
DirectDraw is a replacement for GDI for Windows 95 and
Windows NT 4.0. See elsewhere in this overview for sections on
GDI and DirectDraw.
The Direct Draw Hardware Abstraction Layer (HAL) defines
Direct Draw device drivers for graphics/video display
adapters. Graphics and video card manufacturers
provide DirectDraw device drivers. For Direct Draw
to work it must have these device drivers.
DirectDraw also defines a DirectDraw Applications Programming
Interface (API), a standard set of function calls invoked by
applications. The DirectDraw API in turn calls the Direct
Draw HAL to access the graphics/video display adapter.
ActiveMovie can invoke DirectDraw for video output under
Windows 95 and Windows NT 4.0.
Return to Top
Virtual Device Drivers
In Windows 3.x and Windows 95, Virtual Device Drivers or VXD's are
usually the hardware device drivers. They run in a privileged mode of
the Intel 80x86 processor known as Ring Zero. Video display adapters
and video capture cards usually have an associated VXD written by the
card or chip manufacturer.
Note that some Windows device drivers are implemented as Dynamic Link
Libraries (DLL's) that do not run in the privileged, Ring Zero, mode
of the 80x86 processor or as MS-DOS programs that access hardware.
These device drivers are not VXD's. There are some things that only
VXD's can do. Most PC hardware, especially with high bandwidth
requirements, use VXD's.
Device drivers for video display adapters are rarely a single VXD.
Often the Device Driver Interface (DDI) is implemented as a Dynamic
Link Library which does not run at Ring Zero. Only parts of the
device driver that need to run at Ring Zero are in the VXD.
A full video display device driver is often built of several
files, frequently including one or more VXDs.
VXD's are usually found in the \WINDOWS\SYSTEM directory.
VXD's will not work for hardware under Windows NT 3.51 or NT 4.0
Windows NT has its own Windows NT Driver Model for device drivers.
In "Memphis", formerly Windows 97, and NT 5.0, Microsoft is attempting
to provide a common driver model known as WDM or Win32 Driver Model so
that the same drivers can be used in both Memphis and NT.
Return to Top
Windows NT Driver Model
Windows NT (3.51, 4.0) has its own system of hardware device
drivers. While NT can often run Windows 3.x and Windows 95
applications, NT cannot use Windows 3.x or Windows 95
device drivers (the Virtual Device Drivers or VxD's).
For most people working with AVI, or video in general, the main
point to remember is that different drivers are needed for
NT than Windows 95 (or Windows 3.x). Most hardware manufacturers
provide both Windows 3.x, 95, and NT drivers.
TOOLS
Programmers will need the Windows NT DDK (Device Driver Kit)
to develop Windows NT drivers. This is available in a
subscription to Microsoft Developer Network (Professional).
http://www.microsoft.com/msdn/
Return to Top
Win32 Driver Model (WDM)
The Win32 Driver Model (WDM) is a new device driver system for
Memphis (formerly Windows 97) and Windows NT 5.0 The notion is that
the same device drivers will work under both Memphis and NT 5.0
WDM is largely the Windows NT Driver Model used in NT 3.51 and 4.0
It is still under development. Video display card and video capture
card companies will presumably be providing WDM drivers for
Memphis and NT 5.0 in the future.
Memphis is supposed to be backward compatible so that
Windows 95 Device Drivers will still work under Memphis.
Similarly, NT 4.0 Device Drivers will still work under
NT 5.0 A WDM Device Driver will work under both Memphis and
NT 5.0.
Return to Top
Setup Information or INF Files
When a video codec or hardware device driver is installed under
Windows 3.x, Windows 95, or Windows NT, Windows uses a special
file known as a Setup Information file. This is also known as
a Device Information file in the case of device drivers. These
files have the extension .INF and are also known as INF files.
When a user installs a codec or device driver through the Control
Panel, the user points the Windows system to a directory containing
an INF file and the various files, such as VxD's or DLLs, to be
installed.
A Setup Information, Device Information, or INF file contains
directives that tell Windows how to install the new software or
hardware. These include changes to the Windows Registry, names and
locations of files to install, and other things.
If you are providing a hardware or software product, you may need to
create an INF file to install your product, driver, etc.
End users are often unaware of the INF file. Indeed, its purpose is to
hide the complexity of installing hardware or software. But it is
good to be aware that these files exist and Windows needs them to
properly install many drivers, codecs, and so forth.
Where AVI is concerned, there are frequently INF files for video
codecs, video display adapters, and video capture cards.
Return to Top
MMX
MMX or Multimedia Extensions to the Pentium instruction set are
57 new instructions that accelerate some graphics, imaging, and
multimedia operations. Multimedia often involves small data types
such as 8 bit or 16 bit pixels that can be processed in parallel.
For example, in principle, a 32 bit instruction could operate of
four 8 bit pixels in parallel.
A simple example would be adding four 8 bit pixels in parallel.
The MMX instructions add clipping for underflow and overflow
situations.
255 0 0 255 Normal addition of four 8 bit pixels backed in 32 bits
+ 0 0 0 255
-------------
255 0 1 0
255 0 0 255 MMX style clipping of overflow
+ 0 0 0 255
--------------
255 0 0 255
Intel developed the MMX instructions and added them to recent
versions of the Pentium chip known as the P55C or Pentium with MMX.
The MMX instructions were also added to the Pentium Pro. The Pentium
Pro with MMX was code named Klamath, but called the Pentium II when
actually shipped in 1997.
MMX can accelerate various graphics and multimedia operations. It can
accelerate video codecs. In particular, the block Discrete Cosine
Transform used in JPEG, Motion JPEG, H.261, H.263, H.263+, MPEG-4,
MPEG-1, and MPEG-2 can be accelerated using MMX instructions.
Initially compilers have not supported generation of MMX instructions, so
critical portions of the multimedia algorithms must be hand-coded in
Pentium assembler using the MMX instructions.
An MMX version of a codec may be able to encode and decode an AVI
file (for example) faster on a PC with MMX.
DOCUMENTATION ON MMX
Further information on MMX is available at the Intel Web site for
developers:
http://developer.intel.com/sites/developer
Click on the Literature Center link, then select "Pentium Processor
with MMX" from the pull down list of products.
This information is dated August 1, 1997. The Intel Web site changes
from time to time.
In addition to various on-line documentation at the Web site, Intel
has some manuals on MMX:
Intel Architecture MMX Technology Developers Manual (Order No. 243013)
Intel Architecture MMX Technology Programmer's Reference Manual
(Order No. 243007)
TOOLS FOR WORKING WITH MMX
Intel provides an MMX Technology Macro Package for use with
the Microsoft Macro Assembler (MASM). This can be downloaded from:
http://developer.intel.com/design/perftool/mmx1mac/
Intel markets an Intel C/C++ compiler plug-in for Microsoft
Visual C/C++ 4.x/5.0. This plug-in includes "special
compiler intrinsics" to support MMX. These allow a programmer
to use the call syntax of C functions instead of manually
coding in assembly language.
Example of an "intrinsic"
__m64 _m_pmaddwd(__m64 m1, __m64 m2)
http://developer.intel.com/design/perftool/icl24/
The Intel C/C++ compiler plug-in is available on the VTune
CD-ROM. VTune is discussed below.
Intel markets a product called the VTune (TM) Performance Analyzer for
profiling programs on the Intel architecture at the machine
instruction level. VTune includes support for the MMX instructions
and has been used to profile and optimize MMX code. The VTune CD-ROM
includes a number of other Intel freebies and products such as the
Intel C/C++ compiler plug-in that may be useful developing MMX
software.
http://developer.intel.com/design/perftool/vtune/
Return to Top
ActiveX
NOTE: ActiveX is NOT ActiveMovie. There is an ActiveMovie ActiveX
control, but ActiveX is far more than this.
ActiveX is a stripped down version of OLE (Object Linking and
Embedding) targetted for the World Wide Web. An ActiveX component or
control is a software component written in Visual Basic, Visual C++, or
Java that conforms to the ActiveX API. This API is a variant of
OLE, designed to create small objects that can be dowloaded over the
Internet.
An ActiveX object or control may reside on a Web page to be downloaded
and run when Microsoft's Internet Explorer views the page. An ActiveX
control can be the ActiveMovie ActiveX control which plays AVI and other
video formats supported by ActiveMovie. An ActiveX control can be an
entertaining animation, a game like tic tac toe, anything. In this
sense, ActiveX objects are similar to Java applets.
Unlike Java applets, once an ActiveX control has been downloaded once
it remains on the downloading machine and can be used again without
being dowloaded again.
Also unlike Java, ActiveX controls are tied to a particular
architecture, Windows 95 or Windows NT. It is not clear how much
support Microsoft will give for ActiveX on non-Windows platforms.
Java applets are compiled to a Java bytecode that will run on any
platform with a Java virtual machine implemented. Java applets will
run on Windows 3.1, Windows 95, Windows NT, PowerMacintosh, Linux,
Sun, and various other Unix platforms.
There is extensive information on ActiveX at the Microsoft Web site.
The ActiveX SDKs can be downloaded from the Microsoft Developer Online
Web Site (6/28/97):
http://www.microsoft.com/msdn/
Select Microsoft SDKs from the Technical Information section or point your
browser at:
http://www.microsoft.com/msdn/sdk/
Netscape Fans:
ScriptActive is a Netscape Plug-In that adds support for ActiveX to
Netscape.
ScriptActive Web Site
Return to Top
Playing an AVI File within a Windows Application
Programmers can play an AVI File within a Windows application by
several means. The simplest traditional way is to use the
Media Control Interface (MCI). Video for Windows includes an
MCI driver mciavi.drv for AVI files.
Within the Windows API, programmers can use two C language API
functions, mciSendString(...) and mciSendCommand(...), to communicate with
the MCI driver. mciSendString(...) sends MCI command strings such as
"play from 0 to 100" to the MCI driver. mciSendCommand(...) sends MCI
command messages, a straight C type interface, to the MCI driver.
The syntax for mciSendString is:
MCIERROR mciSendString(LPCTSTR lpszCommand, LPTSTR lpszReturnString,
UINT cchReturn, HANDLE hwndCallback);
The pointer lpszCommand points to the MCI command string such as
"play from 0 to 100". Consult the Microsoft SDK documentation for
more details.
The syntax for mciSendCommand is:
MCIERROR mciSendCommand(MCIDEVICEID IDDevice, UINT uMsg,
DWORD fdwCommand, DWORD dwParam);
where uMsg is an MCI command message such as MCI_PLAY defined in an
include file. Consult the Microsoft SDK documentation for more
details on MCI command messages.
mciSendString(...) and mciSendCommand(...) are essentially equivalent.
The MCI driver should convert the MCI command string to an MCI command
message internally. The MCI command strings provide a more English like
interface to MCI.
For C++ programmers, Microsoft provides a window class MCIWnd to wrap
the MCI operations. Quoting the Microsoft SDK documentation:
Microsoft sayeth....
MCIWnd is a window class for controlling multimedia devices. A library
of functions, messages, and macros associated with MCIWnd provides a
simple method to add multimedia playback or recording capabilities to
your applications.
Using a single function, your application can create a control that
plays devices such as video, CD audio, waveform audio, MIDI (Musical
Instrument Digital Interface), or any device that uses the Media
Control Interface (MCI). Automating playback is also quick and
easy. Using a function and two macros, an application can create an
MCIWnd window with the appropriate media device, play the device, and
close both the device and the window when the content has finished
playing.
... end Microsoft sayeth.
Consult the Microsoft documentation for more details on MCIWnd.
ActiveMovie appears intended to supersede MCI. ActiveMovie includes
a restricted subset of MCI for (partial) backward compatibility.
However, Microsoft appears to want developers to switch over to
new API's such as ActiveX and ActiveMovie, built on top of Microsoft's
Component Object Model (COM) object oriented framework.
Return to Top
Reading and Writing an AVI file within a Windows Application
The Microsoft Windows Win32 SDK (Windows NT and Windows 95) includes a
set of functions and macros known as AVIFile for reading, writing, and
manipulating RIFF files including AVI files within a Windows program.
These functions are contained within a Dynamic Link Library
avifile.dll.
The AVIFile functions include:
AVIFileInit(...)
AVIFileOpen(...)
AVIFileReadData(...)
AVIFileWriteData(...)
AVIFileExit(...)
and many many others. Consult Microsoft documentation for details.
Return to Top
Where to get C Source Code for AVI Player Including Many Codecs
Marc Podlipec's Xanim is a free AVI Player for X Windows and Unix.
Most of Xanim is available in source code format. The Xanim home
page is:
http://xanim.va.pubnix.com/
Unfortunately, Xanim's Cinepak and Indeo support is only available in
object module (binary format).
Return to Top
Where to get Detailed Information on Graphics File Formats
Programmers often need to know the details of the many
graphics file formats, both still image and moving.
There are a number of Web sites, books, and other resources
that provide detailed information on the many still image and
video/animation graphics file formats.
Wotsit's File Format Collection
http://wotsit.simsware.com/
and
http://www.ipahome.com/gff/textonly/summary/
Return to Top
Where to get Detailed Information on Audio File Formats
On the Internet, Guido Van Rossum distributes an Audio Formats FAQ (in
two parts) to the alt.binaries.sounds.misc,
alt.binaries.sounds.d, and comp.dsp USENET newsgroups.
On the Web:
http://www.cs.ruu.nl/wais/html/na-dir/audio-fmts/.html
Return to Top
Where to get C Source Code for a JPEG Encoder or Decoder?
Maybe you want to write your own Motion JPEG codec for AVI. It
happens.
The Independent JPEG Group, also known as IJG, distributes the source
code for a JPEG encoder and decoder. The IJG code is incorporated in
many JPEG viewers, is optimized, is free. This is available by
anonymous ftp from the UUNET FTP archive.
ftp://ftp.uu.net/graphics/jpeg/
Return to Top
Where to get C Source Code for an H.263 Video Encoder or Decoder?
Telenor Research distributes a free H.263 video encoder and decoder.
The code is not optimized. Note that H.263 is subject to a variety
of patents and Telenor includes a disclaimer with the code.
http://www.fou.telenor.no/brukere/DVC/h263_software/
Return to Top
Where to get C Source Code for an MPEG Video Encoder or Decoder?
The MPEG Software Simulation Group or MSSG distributes the C source code
for MPEG-1 and MPEG-2 video encoders and decoders. This code is not
optimized. Go to the MPEG site below and look for MSSG.
http://www.mpeg.org/
Return to Top
Where to get C/C++ Source Code for Wavelet Image Compression?
Geoff Davis distributes a C/C++ source code for wavelet still image
compression of grayscale images, the Wavelet Image Construction Kit.
This code is made available for research purposes.
http://www.cs.dartmouth.edu/~gdavis/
Also see the SPIHT demonstration programs,
http://ipl.rpi.edu/SPIHT/
Return to Top
Where to get an Explanation of Color, Color Spaces, Gamma, and All That
Charles Poynton maintains an FAQ on Color and an FAQ on Gamma. This is
posted in USENET newsgroups regularly and is available on the Web.
http://www.inforamp.net/~poynton/notes/colour_and_gamma/ColorFAQ.html
Return to Top
Internet Video Standards and Pseudo-Standards
There are a number of Internet standards and proposed standards
for sending video and multimedia over IP based networks. These
are mostly described in Internet Engineering Task Force (IETF)
Requests For Comments (RFC's).
Programmers and others needing the details of the standards and
proposed standards can find the RFC's at a variety of on-line
RFC repositories such as the Information Sciences Institute:
http://www.isi.edu/rfc-editor/
What should you look for?
There are thousands of RFC's, most of which do not relate directly
to video. Below are some families of protocols used with video
and representative RFC's for these families. I have tried to include
the most important RFC's.
MIME (Multipurpose Internet Mail Extensions)
MIME is a protocol for attaching multimedia data such as images, sound,
and video to Internet mail.
RFC 1521 MIME (Multipurpose Internet Mail Extensions) Part One:
Mechanisms for Specifying and Describing the Format of Internet Message
Bodies.
RFC 1522 MIME (Multipurpose Internet Mail Extensions) Part Two:
Message Header Extensions for Non-ASCII Text
(why do it only once?)
RFC 2045 MIME Part One
RFC 2046 MIME Part Two
RFC 2047 MIME Part Three
RFC 2049 MIME Part Five
RTP (Real Time Protocol)
RTP is a protocol for insuring timely delivery of "real-time" data
such as video. Video frames must be delivered in a timely manner
in order to be displayed evenly and periodically. The TCP
protocol does not provide this functionality. See the discussion of
UDP (User Datagram Protocol) below for more on the limitations of
TCP.
RFC 1889 RTP: A Transport Protocol for Real-Time Applications
RFC 1890 RTP: Profile for Audio and Video Converences with Minimal Control
RFC 2029 RTP Payload Format of Sun's CellB Video Encoding
RFC 2032 RTP Payload Format for H.261 Video Streams
RFC 2035 RTP Payload Format for JPEG-Compressed Video
RFC 2038 RTP Payload Format for MPEG1/MPEG2 Video
RFC 2190 RTP Payload Format for H.263 Video Streams
RFC 2198 RTP Payload for Redundant Audio Data
RSVP (Resource Reservation Protocol)
The Resource Reservation Protocol guarantees a
certain bandwidth to a particular data stream. Video and other
"real-time" data typically require a minimum bandwidth consistently
for acceptable quality and performance. If the bandwidth
is not available, the video skips frames or worse.
The original TCP/IP Internet was designed primarily for non
"real-time" data, often text such as e-mail messages. With e-mail, if a
network becomes congested and it takes a long time to transmit
a message, there is little problem. The user's e-mail arrives a little
late. In many cases, the user never notices. Real-time video does not
have this luxury.
RSVP is one possible mechanism to add "Quality of Service" (QoS) to the
Internet.
RFC 2205 Resource ReSerVation Protocol (RSVP) - Version 1 Functional Spec
RFC 2206 RSVP Management Information Base using SMIv2
RFC 2207 RSVP Extensions for IPSEC Data Flows
RFC 2210 The Use of RSVP with IETF Integrated Services
IETF is reportedly working on a standard for mapping RSVP to
Asynchronous Transfer Mode (ATM) Quality of Service (QoS)
A number of products supposedly support RSVP. RSVP is not widely used
(Nov. 25, 1997) hence some caution is prudent with claims of RSVP
support.
Products
Cisco's Internetwork Operating System (IOS) for Cisco Routers
Ascend's GRF Routers
Version 12.0 of Bay Networks BayRS Router
Microsoft NetMeeting videoconferencing software
Intel ProShare videoconferencing software
First Beta Version of Microsoft's Windows NT 5.0 Operating System
Internet Service Providers (ISP's)
GTE Corporation's Internetworking Division (formerly BBN Corporation), a
major Internet Service Provider, has a service trial of RSVP.
(Nov. 25, 1997)
MCI Telecommunications reportedly will enable RSVP on its
very-high-bandwidth Backbone Network Service (vBNS) next year (1998).
IP Multicast
IP packets support so-called "multicast addresses". A multicast
address is an an address that represents a group of machines.
Machines may dynamically join and leave the multicast group.
Multicasting allows simultaneous transmission of a packet to
all machines in the group without duplication of the packet. For video
data, this allows the equivalent of broadcast channels over a network.
For example, a live speech could be sent to one multicast address
while a different video program was sent to a different multicast
address. A machine joins the appropriate multicast group to
receive the "broadcast channel".
In principle, multicasting reduces the load that video places
on a network since only one packet is sent to multiple
viewers. Without multicasting, a separate duplicated packet is
sent to each viewer.
Ethernet and some other network technologies support multicast
in hardware. Ethernet "frames" have multicast Ethernet
addresses. Implementing IP multicast on a single Ethernet, a single
IP "subnet", is a straightforward mapping from the multicast IP
addresses to the Ethernet multicast addresses.
IP Multicast becomes quite complex when the machines in the multicast group
are located on separate subnets and the IP multicast packets are routed
by networks routers. The routers need to know whether a particular
subnet contains machines belonging to a particular multicast group.
Section 6 of 14 - Prev - Next
All sections - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14
© allanswers.org | Terms of use