|Chapter 6 - Managing E-Mail Connectivity|
|Monitoring and Managing Microsoft Exchange 2000 Server|
|by Mike Daugherty|
|Digital Press 2001|
Windows 2000 Server includes a functional Simple Mail Transfer Protocol (SMTP) component to provide a reliable transport mechanism for the Windows 2000 operating system and for applications layered on Windows 2000. This SMTP component runs as part of the inetinfo.exe process and supports many of the Extended SMTP (ESMTP) standards. Messages can be submitted to the Windows 2000 SMTP using the SMTP protocol through port 25, using a drop-off directory for properly formatted e-mail messages, or using Collaboration Data Objects (CDO).
The Windows 2000 SMTP component also supports the transport and protocol sinks that allow programmers to extend the capabilities of the basic SMTP component. Exchange takes advantage of these transport and protocol sinks to extend the basic SMTP functionality. When you install Exchange 2000, it adds SMTP extensions in the following areas:
Adds an Exchange Installable File System (IFS) store driver that allows message pickup and drop-off directly from the Information Store without having to queue the messages in specific Windows 2000 file system directories.
Adds an Advanced Queuing Engine to manage message delivery queues.
Adds an enhanced message categorization agent that examines messages and queues the message for delivery based on certain message attributes. Windows 2000 includes a basic message categorization agent (cat.dll) . The Exchange categorization agent (humorously named phatcat.dll ) includes support for Exchange-specific attributes.
Adds routing engine support for using link state status information to make intelligent routing decision based on the most current network conditions.
Adds SMTP command verbs to support communicating link state status information to other servers.
The SMTP protocol used by Exchange 2000 has several performance improvements that were not available with Exchange 5.5. All of these performance improvements are consistent with standards covered by the Internet Engineering Task Force (IETF). These improvements include the following:
When data is transferred between two Exchange 2000 servers, it is no longer converted from 8-bit data to 7-bit data for transmission as it was with Exchange 5.5. The conversion used by Exchange 5.5 took processing cycles and increased the amount of data that was transferred.
Exchange 2000 implements pipelining as defined in RFC 2197. Pipelining allows the sending system to send multiple SMTP commands (e.g., MAIL From, RCPT To, DATA) without waiting for an acknowledgement for each specific command.
SMTP implementations based on the older RFC 821 require that an acknowledgment be received for each command before the next one can be sent. This type of transmission was considered an unfortunate necessity when systems were connected with error-prone , unreliable connections. However, the performance penalty was significant, particularly with high-latency networks.
Exchange 2000 implements the BDAT command from the Extended SMTP specification as defined in RFC 1830. This is commonly referred to as chunking . The BDAT command replaces the DATA command found in the standard SMTP specification as defined in RFC 821.
The DATA command is issued to mark the start of the actual message data transmission. The end of data is marked by sending a sequence of characters (carriage return, line feed, full stop, carriage return, line feed.) The receiving system must examine all incoming data to watch for this sequence of character signifying the end of data.
By contrast, the BDAT command is sent to the receiving system along with a byte count signifying the number of bytes of data that are to be sent. The receiving system only needs to count the incoming bytes to know when all of the data has been received.
Since many of the SMTP servers on the Internet do not yet use these new features, Exchange 2000 uses these features only when communicating with other systems that support them. This is automatically negotiated between the two systems when they begin communicating.
Windows 2000 implements SMTP support using virtual servers. An SMTP virtual server is an instance of a service that appears to be a physical server. An SMTP virtual server has its own name , IP address, port number, and authentication type, and each can be independently configured to meet your specific requirements. An Exchange server can support multiple SMTP virtual servers, although usually each server only has one SMTP virtual server checking for incoming connections on port 25 for all IP addresses.
Each SMTP virtual server is multithreaded, so there is no performance or scalability advantage for implementing multiple virtual servers on the same physical server. However, you may want to create additional virtual servers if the virtual servers have differing requirements that require tailoring the configuration parameters. For example, you may want to use a different authentication method such as anonymous access for one of the virtual servers. Or, you may have certain users or applications that you do not want to use the same message size limits or other restrictions that you impose on the general e-mail population.
You can create a separate SMTP virtual server using a different port number to handle these special situations, and only allow specific hosts to route messages to the virtual server.