Microsoft's NetShowLive lets you deliver information from one source to many destinations

s businesses use more intranet, groupware, multimedia, and client/server technologies, they need more IP multicasting applications. Video conferencing, audio conferencing, online training, news distribution, software distribution, and database replication are all good candidates for IP multicasting, one-to-many communication from a source to a group of selected destinations. Multicasting applications can minimize the demand for network bandwidth while delivering information from a source to multiple destinations via one stream.

Are you ready for IP multicasting? Before you open the door to IP multicasting applications, you need to learn what IP multicasting is and to find out whether your network infrastructure and IP multicasting applications support each other. This article will explain IP multicasting and then describe a multicasting session conducted with Microsoft NetShow Live.

Why Multicast?
Traditionally, network traffic is either unicast or broadcast. Unicasting is one-to-one communication from a source to a destination on the network. If n hosts request the same information from the same source, n copies of the information move from the source host to n destination hosts. Broadcasting is one-to-everyone communication from a source to the rest of hosts on the network. The broadcast information reaches every host regardless of whether the host needs the information. Broadcasting wastes network bandwidth by flooding the network when only a small number of users need the information.

Unicasting and broadcasting do not work for certain applications. For example, your CEO wants to conduct an audio conference with 50 senior managers through the network. If the multimedia application for the conference uses unicasting, the CEO's computer repeatedly sends out 50 audio streams to 50 managers' computers. Unicasting wastes bandwidth because it sends 50 duplicate copies over the network, and it causes a significant delay before the last manager hears the CEO.

Broadcasting cannot solve the problem: Broadcasting sends only one audio stream over the network, but it sends the information to every computer on the network. Therefore, the audio stream floods every corner of the network and can bring the network down.

Multicasting comes to the rescue. The multicast host sends out only one copy of the information, and only the destination hosts that need the information receive it. In the audio conferencing example, the CEO's computer sends only one audio stream to the network, and only the 50 senior managers receive the stream. The information uses only required network bandwidth and arrives at every manager's computer without a noticeable delay.

IP Multicasting and Its Addresses
IP multicasting transmits information from a source host to a group of destination hosts in a TCP/IP network. (The sidebar "A Quick Review of ISO/OSI, IEEE 802.2, and TCP/IP " describes computer communications protocols.) Multicasting is an integral part of the IP protocol on the network layer of the International Standards Organization/Open Systems Interconnection (ISO/OSI) Reference Model. This technology is not new. Steve Deering at Stanford University proposed the Internet Group Management Protocol (IGMP) in the Internet Engineering Task Force Request for Comments (IETF RFC) 1112 in 1989. IGMP defines most specifications of IP multicasting. You can download a free copy of RFC 1112 from http://www.cis.ohio-state.edu/htbin/rfc/rfc1112.html.

In the addressing scheme in the IP protocol, class A, B, and C addresses identify a host in a TCP/IP network. A class D address represents an IP multicast group in which many hosts participate in the same IP multicasting application. The first four bits of the 32-bit class D addresses are 1110, and the remaining 24 bits can range from all 0s to all 1s. Therefore, IP multicast addresses can range from 224.0.0.0 to 239.255.255. 255. The protocol reserves address 224.0.0.0 for operating systems, and the protocol cannot assign that address to applications. For example, the protocol permanently assigns 224.0.0.1 to the all-hosts group, which includes all computers and routers participating in IP multicasting in a local network. The sidebar "How IP Multicasting Works ," page 106, describes the steps in developing multicasting software.

Microsoft fully supports IP multicasting in its TCP/IP in Windows NT 3.5, 3.51, and 4.0 and Windows 95. IGMP defines three levels of support for IP multicasting. Level 0 has no support, Level 1 supports sending but not receiving multicast IP data, and Level 2 fully supports sending and receiving multicast IP data. The Microsoft TCP/IP supports Level 2.

The only component that uses IP multicasting in NT is Windows Internet Naming Service (WINS). When a WINS server starts up, it sends an IP multicasting packet to address 224.0.1.24 looking for other WINS servers that participate in WINS database replication. WINS sends out this multicast packet periodically by default.

Microsoft's NetShow 1.0, a component of Internet Information Server (IIS) 3.0, is a software platform for one-to-many multimedia communication and information distribution. NetShow Live, a component of NetShow, uses IP multicasting to distribute prerecorded wave sound audio, live audio, and files over a corporate intranet and the Internet.

Microsoft also supports IP multicasting in its Win32 Software Development Kit (SDK) with AF_INET sockets of type SOCK_DGRAM. Developers can use User Datagram Protocol (UDP) in the transport layer of the ISO/OSI model for IP multicasting in an NT or Win95 network. However, developing multicast software is not easy. You probably will buy software for your environment.

IP Multicasting Support Checklist

Before you install an IP multicasting application on your network, verify that your network infrastructure supports IP multicasting and that the IP multicasting application supports your network. Table 1 lists some questions you can ask yourself and your vendor about IP multicasting support.

TABLE 1: Is Your System Ready for IP Multicasting?
Ask yourself:
  1. Does my TCP/IP software support IP multicasting?
  2. Can my network interface cards filter multicasting?
  3. Do my routers support IP multicasting?
  4. What multicast routing protocols do my routers use: DVMRP, MOSPF, or PIM?
  5. Is at least one multicast routing protocol used throughout my network?
  6. Do my switches support IP multicasting?


Ask your vendor:
  1. What OSs does the IP multicasting application support?
  2. What TCP/IP software does the application support?
  3. What network bandwidth does the application require?
  4. Can the maximum bandwidth requirement be limited for the application?
  5. What networks does the application support?
  6. Can the application go through my firewall?
  7. How does the application work in my multi-homed host?
  8. What Internet Web server or browser does the application require, if any?

First, consider your network. Although IGMP is a part of IP, whether the IP stacks on your servers and workstations contain IGMP depends on the TCP/IP software that you are using.

Can your NICs filter multicast data? If they can't, they will receive unwanted data and cause interference in your client computers.

Do your routers support IP multicasting? What multicast routing protocols do they have? If you have multicast routers from different manufacturers or different models and versions from the same manufacturer, be sure that they use at least one common multicast routing protocol on your corporate network. Microsoft Multi Protocol Router in NT 4.0 doesn't support IP multicast routing.

Most low-level switches are strict Layer 2 (the data link layer) switches and don't support IP multicasting. When IP multicast data arrives, the Layer-2 switch simply forwards it to all ports. As a result, the data floods all segments and hosts on the switch and can clog the network. When flooding occurs, multicasting becomes broadcasting, which is not what a switch is supposed to be. Only certain high-level switches that can decode Layer 3 (the network layer) data and support IGMP work like a multicast router. Pay careful attention to switches and discuss them with your switch vendor before you deploy a switched network.

After you prepare your network, look at the application. An important question is what operating systems and TCP/IP software the IP multicasting application supports. For example, Microsoft NetShow Live Server supports NT Server 4.0 only, and Live Client works on NT Workstation 4.0 and Win95 only. They both use only Microsoft TCP/IP.

If you run Token Ring or any network other than Ethernet, ask the application vendor or test the application's support for your specific configuration. Microsoft lists only Ethernet adapters as NICs for NetShow Live, but the application works on a Token-Ring network.

The network bandwidth that a multicast stream requires can range from several Kbits per second (Kbps) up to several Mbits per second (Mbps). Find out the bandwidth requirement for your specific IP multicasting application to see whether your network has enough bandwidth for it. Also ask whether you can restrict the bandwidth demand, so you can limit how much bandwidth the application can use over the network. For example, Microsoft NetShow Live requires 3Kbps bandwidth for audio if it uses the sound format IMA ADPCM (Microsoft Interactive Multimedia Association Adaptive Delta Pulsa Code Modulation--high-quality compressed audio for higher bit rate content). NetShow Live can limit the maximum bandwidth for file transfer.

A firewall can stop your multicast IP data. For example, IP multicasting data from Microsoft NetShow Live Server can't traverse firewalls. Ask your vendor about firewall support.

Which network interface does the IP multicasting application use when the application resides in a multi-homed host? Can you specify a preferred network interface? Microsoft NetShow 1.0 doesn't support a multi-homed host, but a future version will support it, according to Microsoft.

In light of today's enthusiasm for the Internet and intranets, more and more applications are Internet/intranet and Web browser-aware. Some IP multicasting applications require a Web server for the multicast server or a Web browser for the multicast client. Find out whether the multicasting application supports your Web server and browser. NetShow Live Client requires Internet Explorer (IE) 3.0 or later.

Introducing Microsoft NetShow Live
After you understand the principles of IP multicasting and check your support, you can use Microsoft NetShow Live to implement an IP multicasting application, such as the CEO audio conference.

NetShow Live delivers prerecorded wave sound audio, live audio, and files over an intranet and the Internet. It contains NetShow Live Server and NetShow Live Client. NetShow Live Server is always the source of multicasting. It requires NT Server 4.0. You can install NetShow Live Client in an NT 4.0 or a Win95 computer to receive multicast information through IE 3.0 or later. You also need a sound card if a NetShow Live computer plays audio. To implement NetShow Live, you must set up the server, the client, the Web page, and the session.

1. Server Setup. You can download NetShow from http://www.microsoft.com/netshow. Simply copy file nslservr.exe to an empty directory on the server and expand the file. The program automatically installs NetShow Live Server.

2. Client Setup. You don't need to manually install any software on a client computer. When a computer displays a Web page that contains a NetShow Live ActiveX control, the program on the server automatically installs the client files, msrtp.dll and ws2stub.dll, to the Windows System32 directory on the client computer.

The client directory of NetShow Live on the server contains two NetShow Live ActiveX controls, nlaudio.ocx and nlfile.ocx. nlaudio.ocx plays audio on the client computer, and nlfiles.ocx stores a multicast file on the client computer. The control files must reside in a directory (e.g., the same directory as client Web pages) that the Web browser can find.

3. Web Page Setup. You can embed a NetShow Live ActiveX control in a Web page. To create such a Web page as an audio player or file transfer for clients, you need basic knowledge of HTML, Microsoft ActiveX Control (see http://www.microsoft.com/activex for more information about ActiveX), and a scripting language such as Microsoft Visual Basic Scripting Edition (VBScript--you can download VBScript from http://www.microsoft.com/vbscript).

The Web page must include three key components: object information, form, and scripting code. Listing 1, is an example of the HTML file for the CEO audio conference; Screen 1 displays the corresponding Web page. An HTML file for file transfer is similar. More information about file transfer is available in the NetShow Live SDK documentation that ships with NetShow Live.

The Object ID section of Listing 1 provides the object information to the browser; that is, it tells the browser which control to load when a client opens the Web page. The control is nlaudio for audio player or nlfile for file transfer. To load either control, specify version -1,-1,-1,-1, as shown in the listing. You must include all the parameters shown in the Object ID section of the listing.

The Form section of Listing 1 defines the form that the control uses. A form defines a user interface of a Web page and generally contains buttons and text boxes. The form in the listing has three buttons: Play starts the audio player, Stop stops the audio player, and About displays the current version of the audio control.

The Script Language section of the listing, written in VBScript, contains all subroutines of scripting codes to implement the functions defined in the Form section. For example, when you click Play, the program executes subroutine BtnPlay_OnClick. The subroutine first stops any previous audio player; joins the multicast group by IP multicast address 239.100.20.30 and port number 25050; uses the sound format IMA ADPCM, Mono (Monophonic), 8.000kHz and 4 bit, which are represented by numbers in NLAudio.SetCodec(17,1,8000,4) respectively; and then starts playing audio.
4. Session Setup. NetShow Live Administrator is the utility for setting up a multicast session on the server. With the administrator, you can create, modify, delete, start, stop, and save an audio, live audio, or file transfer session.

Screen 2 displays the properties of the CEO live audio session. All computers participating in the session must use the same IP multicast address. In addition, NetShow Live must specify a port number for a specific session. The port number is a UDP port that identifies an IP process in a computer. This can range from 1 to 65535. You can use the numbers 5000 and above for user applications. Microsoft requires that the port number for audio be an even number in the range of 16384 to 32768. For the session to run successfully, the attributes of the Sound Format in the property of the live audio session must match those in NLAudio.SetCodec(17,1,8000,4) in Listing 1, and the IP address and port in the property of the live audio session must match those in NLAudio.SetSocket ("239.100.200.30", 25050) in Listing 1. In this example, obviously, you need to set the sound format to IMA ADPCM, Mono, 8.000kHz and 4 bit by clicking Change and then choosing this setting. Enter 239.100.200.30 in the IP Address field and 25050 in the Port field.

You can also define the multicast range of this session in the Time to Live (TTL) area in the properties of the session. The multicast range can be on your local network (the subnet where the NetShow Live server resides), your intranet, or the Internet within a scope specified by the TTL number. TTL=32 in the example means that you can forward the CEO audio from the server to a client in a maximum of 32 hops.

Be Well Prepared
Now you know the basics of IP multicasting and Microsoft NetShow Live, an IP multicasting application. IP multicasting reduces the demand for network bandwidth for applications, such as video and audio conferencing, that are well suited for this technology. Integrate support for IP multicasting into the design and upgrade of your network infrastructure. When your management and user community require multicasting applications, you can offer a good solution and preserve your network.

Microsoft NetShow Live is Microsoft's first IP multicasting application for the NT network. You can expect more from Microsoft and third parties as NT gains more market share. Be well prepared.

The complete source and executable code is available for downloading from Windows NT Magazine's Web site at http://www.winntmag.com.

NetShow 1.0
Microsoft * 206-882-8080
Web: http://www.microsoft.com/netshow