Networking over IrDA in Windows XP
Updated: December 4, 2001
This article describes the networking profiles that are supported over IrDA and how they are implemented in Microsoft Windows XP. The IrDA protocol implementation in Windows has changed significantly since it was first introduced in Windows 98. Each consecutive Windows operating system has introduced modifications to the IrDA protocol implementation, which endeavored to improve the overall user experience.
On This Page
A primary goal for Windows XP is to unify the Windows and Windows NT code bases, including how the IrDA protocol is implemented. The first Windows NT-based operating system that included IrDA was Windows 2000. Although the IrDA protocol implementation in Windows 2000 was stable and the architecture was clean, this implementation lacked the broad legacy application support provided in Windows 98 and Windows Millennium Edition (Windows Me). These tradeoffs were most prominent in the networking profiles. The IrDA stack in Windows 98/Me supported networking profiles strictly over the IrCOMM kernel-mode driver, to serve as a straightforward cable replacement; however, the IrDA stack in Windows 2000 provided no support for IrCOMM and based its networking on newly-designed IrNET and IrDial protocols.
In Windows XP, the two IrDA protocol implementations have merged to combine the best features of each: the stability of the Windows 2000 IrDA stack and the rich legacy application support of the Windows Me IrDA stack.
Supported Networking Profiles
IrDA protocol implementation in Windows XP provides infrared-enabled device connectivity to the Internet or to any other network, either through a dial-up networking profile or a local area network (LAN) access networking profile. A dial-up networking profile enables computer-to-network connectivity through a modem, while a LAN access networking profile enables a direct point-to-point connection between two computers or between a computer and a network access point.
In dial-up networking, a computer accesses the network through a modem. Although dial-up networking usually occurs through a built-in modem and a land-line phone line, dial-up networking over IrDA offers a wireless variation of the same scenario: the computer uses a mobile phone as the modem and its wireless wide area network connectivity in place of land-line connectivity.
In Windows XP, the primary goals of the dial-up networking profile are ease of use and fewer steps for configuration. The typical user scenario involves placing an infrared-enabled mobile phone next to the infrared port on the computer and then creating an appropriate network connection, as with a built-in modem.
To make such a scenario easy for users to understand and implement, many processes must occur automatically in the background, including:
The drivers and .INF files required to perform these steps are IrCOMM, IrENUM, and Mdmirmdm.inf.
In Windows XP, IrCOMM is implemented as a kernel-mode driver that communicates with the existing IrDA stack through its Transport Driver Interface (TDI) and that is accessed by applications through TAPI and Unimodem. The Windows XP implementation of IrCOMM supports the IrDA 9-wire specification, allowing control-line information to be sent over the infrared link.
IrEnum, also implemented as a kernel-mode driver, is an infrared bus enumerator. It is loaded as an upper filter if any infrared adapter hardware is present in the system. The main functions of IrEnum are to locate and enumerate any infrared devices in range. After it locates and enumerates a device, IrEnum performs the standard Plug and Play methods of comparing and matching the device-supplied ID with a system-supplied ID.
Mdmirmdm.inf is a new .INF file that supports the installation of enumerated IrCOMM devices. The file provides Plug and Play IDs for all supported devices and instructions for installing the correct modem for an enumerated device. Even if the .INF file does not contain an exact ID match, it will still enable any detected device to be installed. Installing a generic modem with standard modem functionality will make the device usable in at least a basic manner.
In Windows XP, dial-up networking support will be limited to computer-originated infrared links to a mobile phone. Computers running Windows XP will not support mobile phone-originated infrared links. This limitation is a result of the current IrTran-P server listening for incoming IrCOMM connections. These two applications coexist peacefully on Windows XP because the IrTran-P server is listen-only and dial-up networking is dial-only.
Note: IrTran-P, a listen-only service for image transfer profile, always listens for incoming IrCOMM connections in Windows XP. As such, it can coexist with the dial-up networking profile. However, its operation conflicts with the operation of personal digital assistants (PDAs) that use IrCOMM-based synchronization applications, such as Microsoft ActiveSync technology. This is not a limitation of this particular implementation of the code; it is a more general limitation of IrCOMM as a protocol that allows only one application at a time to register and accept incoming IrCOMM connections on a particular IrDA endpoint. By turning off the Image Transfer utility, it is possible to gain full functionality for or ActiveSync, or similar applications, over IrDA .
LAN Access Networking
The LAN access networking profile enables direct point-to-point connection between two computers, as well as computer-to-network access point connectivity. Even though the two scenarios appear completely different to the user, the underlying operation is basically the same and it relies on one protocol: IrNET.
The IrNET protocol provides infrared-enabled device connectivity to the Internet or to any other network that uses the Point-to-Point Protocol (PPP) family of network access protocols. In Windows XP, IrNET lies at the core of the IrDA LAN access networking profile. Initially, all IP (or any network protocol) packets are encapsulated in PPP, as specified by RFC 1661. IrNET then encapsulates the PPP frames in IrDA Tiny Transport Protocol (TinyTP) service data units (SDUs).
Note: The IrNET connection can only be established between machines running Windows XP and Windows 2000, or between a machine running either Windows XP or Windows 2000 and any third-party LAN access point that supports IrNET. Windows 98 and Windows Me do not include support for the IrNET protocol.
Unlike IrCOMM, IrNET has no dialing sequence. Instead, it immediately initiates PPP negotiation, as shown in Figure 1. A client computer that needs to initiate an IrNET connection performs a query on the class name IrNetv1 and initiates a TinyTP connection to the returned value. After the TinyTP connection is established, IrNET then runs PPP-encapsulated packets framed directly in TinyTP SDUs. A single PPP-encapsulated packet can span multiple TinyTP protocol data units.
Figure 1. Point-to-Point IrDA Networking with IrNET
IrNET supports two user scenarios: peer-to-peer networking and network access point connectivity.
In peer-to-peer networking, a direct infrared connection is established between two computers, as shown in Figure 2. This scenario enables a user on a guest computer to browse files and folders on the host computer. If the host is connected to the network, the user on the guest computer can also access the network through the host computer. The user configures the guest/host relationship during the setup of the infrared network connection between the two computers.
Figure 2. Peer-to-Peer Networking
Network Access Point Connectivity
Direct network access refers to the creation of a direct, point-to-point connection to an infrared network access point. This user scenario is commonly used for accessing the Internet in public places through e-kiosks. Under this scenario, shown in Figure 3, the access point strips the PPP frames and forwards the IP packets over a different medium to a server.
Figure 3. Network Access
Call to Action
Plan to configure infrared devices for communication with systems running Windows XP, as follows:
For general background information about Windows support for IrDA and the protocols discussed in this article, see the Windows DDK and the web site at http://www.microsoft.com/ hwdev/ tech/ network/ infrared/default.mspx.
For additional information or to send queries, send e-mail to email@example.com.