COM port redirector
From Wikipedia, the free encyclopedia
A COM port redirector is a specialized device driver for a Microsoft Windows operating system that includes the underlying network software necessary to access networked device servers that provide remote serial devices or modems.
The equivalent software for a UNIX/Linux operating system is commonly called a tty port redirector and most of the information on this page applies.
Applications use a COM port redirector through one or more virtual COM ports that the redirector creates, as configured by the user. When the application opens the virtual COM port, the redirector makes a IP network connection to a device server at a specified IP address and TCP/UDP port number that corresponds to a remote device on the server. The COM port redirector then begins relaying the application data stream between the virtual COM port and the device server.
COM port redirector software products have been offered by at least 30 vendors dating back to the early 1990's. Compatible networked device servers are currently available from a large number of manufacturers, with a heavy concentration of revenue in the top players, who are based in the North America and Asia/Pacific regions.
Contents |
[edit] Description
The purpose of the redirector is to make the virtual COM port exhibit behavior that closely resembles that of a "real" COM port, i.e., a COM port driver for local serial port hardware. A virtual COM port itself is a relatively simple software mechanism that can be implemented by driver software similar to that of a conventional COM port driver. The main challenges arise in two other areas: the network connection to the device server and the behavior of the device server. These issues are described in the Technology section below.
A redirector for the Windows operating system is typically configured using a control-panel style graphical user interface for creating virtual COM ports, configuring settings for individual COM ports, and configuring global settings affecting all COM ports. The redirector GUI typically also includes displays of virtual COM port activity and various diagnostic aids.
A redirector will typically permit creation of many (at least 256) virtual COM ports, but simultaneous use of hundreds of ports is often practically limited by a number of factors, including the memory and processor requirements of the redirector, limits on operating system resources, and the performance of the network stack.
The performance of a COM port redirector is determined by both its implementation and the network it uses to reach device servers. The performance drawbacks of simple redirector implementations can be largely addressed by kernel-level drivers that avoid context switches. Network packet loss or excessive packet times have dramatic effects on redirector operation and must be avoided.
[edit] Technology
Redirectors address a number of issues related to the network connection, including:
- Network protocol support that is compatible with the device server.
-
- Most device servers are accessed with TCP connections (raw or using the Telnet protocol) to gain reliable delivery of the application's data stream in order of transmission. The majority of server manufacturers use public TCP protocols (raw, Telnet, or Telnet with RFC 2217 extensions). Several of the larger server manufacturers use proprietary protocols in addition to, or instead of, public protocols. Device servers for certain applications, such as those that use wireless networks, use the UDP instead of TCP to gain performance at the risk of network reliability.
- Initiating the network connection to a device server and determining that server is ready to relay application data.
- Accepting inbound connections initiated by device servers running in client mode and routing the data stream to a waiting application.
- Flow control of the network data stream to prevent overrun of the server. (This is not the same as hardware/software flow control of the serial device itself.)
- Data rate limiting of the application data stream to provide the performance expected for the baud rate currently in effect on the virtual COM port, which is slower than the maximum speed of the network connection to the server.
- The timing effects of the TCP protocol stack, e.g. network packetization and the Nagle algorithm.
- Network connections through proxy servers.
- Management of the IP routing table to avoid loss of an IP route to the device server.
- Detection and handling of network interruptions, possibly with an automatic attempt to reconnect to the device server to resume application data flow.
Redirectors must also deal with the feature differences of networked device servers related to:
- Visibility and control of serial line signals such as DSR, DCD, CTS, DTR. The redirector may be able to sufficiently emulate these signals.
- Relay of BREAK signals.
- Settings for hardware or software flow control.
- Handling of the network connection when serial devices or modems disconnect.
[edit] Variants
Specialized types of redirectors have been offered to meet the needs of certain applications.
A redirector may support back-to-back operation, in which two computers run copies of the redirector and an outbound connection from one results in an inbound connection to the other. In effect, this technique creates a serial communications tunnel through a network connection. In practice, this configuration works in practice for only certain applications but offers potentially lower costs and higher performance using the Internet to carry serial communications instead of modems between two computers.
A redirector may include a modem emulator that allows the application to use "AT" modem commands even though no physical modem is present. The "number" dialed is an IP address, and the connection is a TCP network connection instead of a modem telephone call. This type of redirector is generally used by applications in originating client software needs to use a modem but the destination for the connection is a network endpoint. Back-to-back operation of this type of redirector can, in some cases, function as a replacement for modems on two computers for some applications. Network effects on timing of the data stream generally preclude the use of this method for transmitting faxes. Additionally, this method is also not reliable if used for PPP connections (such as dial-up networking) due to architectural limitations of the TCP protocol, a topic discussed in technical literature related to TCP-over-TCP.
A redirector in simplified form (without network software support) can be used to create back-to-back virtual COM ports (also called virtual serial ports) on the same computer. Two legacy applications can then communicate using virtual serial ports instead of conventional inter-process communication mechanisms such as named pipes.
[edit] External links
[edit] Technology
- Telnet protocol specification
- COM port control protocol specification