Microsoft Windows CE 2.1 Communications Model
Summary: This white paper outlines the communications capabilities of the Microsoft® Windows® CE operating system. Because applications and devices differ in their communications needs, Windows CE provides support for a variety of hardware and communication technologies. Serial communication support is provided for communication between devices connected by cables, modems, or infrared transceivers. Windows CE network communications supports options ranging from networking over a serial connection with SLIP or PPP, to LAN and wireless networking with TCP/IP. (5 printed pages)
The ability to communicate is a key feature of Windows CE-based devices. Virtually all will have at least some built-in communication hardware, such as a serial cable or infrared (IR) transceiver. PC card or Compact Flash card support permits a wide variety of aftermarket communications devices to be added to the basic package. Windows CE communications can thus take a variety of forms ranging from serial communication over a cable to wireless networking with TCP/IP.
There are two basic types of communication supported by Windows CE. In many cases, they use the same hardware. The distinction is in how the data is packaged. Serial communication can be used when you have a one-to-one connection between transmitter and receiver. Data is simply streamed from one device to the other. Network communication allows you to address a transmission to one of many devices. It also provides a high degree of reliability, to prevent loss of data.
There are three types of communication supported by Windows CE:
Serial communication can take place over:
- Serial cables
- Infrared transceivers, with or without the IrDA protocols. Both serial and fast IR are supported.
Network communication can take place over almost any type of communication hardware. Windows CE networking supports:
- ICMP requests, also known as a pings
- Internet communication with the HTTP and FTP protocols
- Network file and printer access
- Windows sockets, including the IrSock extension for infrared communication, and the secure sockets extension to enhance secure communications.
- TCP/IP protocols, configurable for wireless networking
- IrDA protocols for infrared communication
- NDIS 4.0 for local area and IrDA networking
- PPP and SLIP protocols for networking with a serial cable or modem connection
- Remote access service (RAS) client support
Windows CE also provides support for managing modem connections through the telephony API (TAPI). TAPI handles such tasks as dialing a phone number, establishing a connection, and terminating a call.
The communications model is represented schematically in the following figure.
Figure 1. A schematic illustration of the Windows CE Communications Model
Serial communications will be supported by virtually all Windows CE devices. At the hardware level, serial communications will usually take place over a cable or through the IR transceiver. Modems can also support serial communications.
Each serial device is assigned a COM port, such as "COM1:". Windows CE provides an API for opening COM ports and managing the connection to the receiving device. Once connected, the actual data transfer uses the same functions that are used for reading from or writing to a file. The data is simply streamed from one device to the other. Overlapped or asynchronous I/O is not supported.
Some devices may allow the IR transceiver to be used for serial communication. The transmission will be "raw" which means, for instance, that there will be no collision detection. The procedures for using raw serial IR are virtually identical to those for a cable.
More robust serial IR communication utilizing the IrDA protocols is available through IRSock (a part of the network stack, discussed later). As an alternative to using IrSock directly, IrComm emulates serial communication but uses IRSock and the IrDA protocols internally. The procedures for using IrComm are virtually identical to those for serial cables and raw IR.
Windows CE supports networked communication using a variety of hardware including:
- Serial cables
- IR transceivers
- Radio transceivers
- Local area networks
It also provides several APIs to simplify the process of including network communications in an application.
Internet Browsing and Access to Remote Files and Printers
Windows CE provides two high-level APIs that that simplify some of the more common uses of network communication.
The WinInet API supports the HTTP 1.0 and FTP Internet browsing protocols. It greatly simplifies the process of writing an Internet client application. Gopher, cookies, proxy bypass lists, and persistent URL caching are not supported. WinInet also helps secure communication. Three security protocols are available: Secure Sockets Layer (SSL) 2.0 and 3.0, and Private Communication Technology (PCT) 1.0.
The Wnet API provides access to a Common Internet File System (CIFS) redirector for access to remote printers and files. Currently only Microsoft® Windows® 95 and Microsoft® Windows NT® operating system connections are supported. The redirector supports Universal Name Convention (UNC) names such as \\serverXX\shareXX, but not drive letters.
WinSock and IRSock
All network communications go through the Windows Sockets interface, commonly known as Winsock. WinInet and Wnet use Winsock internally, and relieve applications of the need to explicitly make and manage a socket connection. You can also use Winsock directly.
Windows CE supports the standard WinSock 1.1 functions. Asynchronous Winsock functions are not included. However, some asynchronous notification support is available through the Microsoft Foundation Classes (MFC) CCeSocket class. An implementation of WSAIoctl is provided to support security service providers. Windows CE supports Secure Sockets Layer 2.0, 3.0, and PCT1.0 security protocols.
IrSock is an extension to Winsock that enables socket-based infrared communication using the IrDA protocols. Applications implement IrSock in much the same way as conventional WinSock, although several of the functions are used somewhat differently.
Remote Access Client Support
Windows CE supports Remote Access Server (RAS) clients. RAS is multi-protocol router used to connect remote devices. Windows CE RAS client support is virtually identical to the standard Windows implementation, but only supports one point-to-point connection at a time.
TCP/IP and IrDA
The TCP/IP suite was developed for the Internet, and is probably the most flexible and widely implemented network protocol. It is supported by a wide variety of systems and forms the core of the Windows CE network stack. While you cannot access the TCP/IP stack directly, you can optimize it by modifying some of its parameters.
Conventional TCP/IP stacks are designed to function efficiently on wired networks. They may work poorly with Windows CE based mobile devices that use wireless networking. The Windows CE TCP/IP stack is designed so that parameters such as the acknowledgement timeout can be set to effectively support wireless networking.
The Infrared Data Association (IRDA) protocol is a widely used standard for IR communication. It is much more reliable than simply streaming data from source to receiver. The Window CE IRDA stack is designed to support NDIS 4.0 SIR and FIR drivers.
While a one-to-one connection between two devices permits serial communication, network communications techniques are often used. For instance, many Windows CE-based devices will connect to their network via a serial communication link, such as a modem. Even between two devices connected by a serial cable, TCP/IP provides built-in reliability that eliminates loss of data.
To support serial-link networking, Windows CE supports the widely used Serial Line Interface (SLIP), and Point to Point (PPP) protocols. Authentication is provided via Password Authentication Protocol (PAP), Challenge Authentication Protocol (CHAP), and Microsoft CHAP.
To support local area and IrDA networking, Windows CE includes an implementation of NDIS 4.0. At present, only Ethernet and IrDA miniport drivers are supported. Wide area networks are not currently supported.
Managing Telephone Connections
Data transmission over a modem connection can take place using either serial or network APIs. However, neither API provides any assistance with such tasks as dialing a telephone number. To simplify the process of making and managing telephone connections, Windows CE includes a Telephony API (TAPI) that can be used with either built-in or PC card modems. It includes a Unimodem service provider for AT command based modems. For other types of modems, TAPI supports installable service providers.
TAPI is a collection of utilities that allow you to take advantage of a wide variety of telephone and communications services without needing detailed knowledge of the particular technology. It handles such tasks as dialing telephone numbers, managing the modem connection, and terminating the call. Only outbound calls are supported.
- For more information on the IrDA protocol, go to http://www.irda.org
The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication.
This White Paper is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT.
Other product and company names mentioned herein may be the trademarks of their respective owners.