This article was previously published under Q260995
This article has been archived. It is offered "as is" and will no longer be updated.
This article provides the definitions of key transport components that are involved in message processing and mail flow in Exchange 2000 Server.
Advanced Queuing Engine
The Exchange 2000 Advanced Queuing (AQ) module queues messages for each destination and manages those queues. AQ receives a message from Simple Mail Transfer Protocol (SMTP), hands the message off to the categorizer, and gets the message back after the message destination is determined. AQ then queues the message for delivery, taking into account next-hop routing information from the routing engine, and finally delivers the message either to the local store driver or the local SMTP stack.
A queuing layer that allows the Internet Information Service (IIS) and information store processes (Inetinfo.exe and Store.exe) to shuttle data back and forth very quickly. This achieves the best possible performance between the protocols and database services on an Exchange 2000 server. Conventional applications require the processor to switch contexts when the processor transfers data between two processes. Epoxy is a high performance interprocess communication (IPC) between the Inetinfo.exe and Store.exe process. Epoxy passes data between two processes at exceptional speeds by using a memory-sharing model that was built from the Shared Memory Circular Queue (SMQ) model.
Exchange Server 5.5 incorporates protocols such as Network News Transfer Protocol (NNTP), Post Office Protocol version 3 (POP3), and Internet Message Access Protocol (IMAP) directly into the Store.exe process to make data transfer very efficient. Exchange 2000 architecture separates the protocols from the database for ease of management and to support future architectures.
Installable File System
Exchange 2000 installable file system (IFS) is a user-mode and kernel-mode streaming interface to read and write directly to the database (the .stm file). IFS allows clients to stream files more efficiently into the .stm file by keeping Internet mail in the native format, for example, Request for Comments (RFC) 822 or Multipurpose Internet Mail Extensions (MIME).
IMAIL is a component of the information store that facilitates conversion of messages between Internet and MAPI storage formats.
Link State Algorithm
The Link State Algorithm (LSA) propagates routing status information between Exchange 2000 servers. This algorithm is based on the Open Shortest Path First (OSPF) protocol from networking technology, and transfers link state information between routing groups by using the X-LSA-2 command verb over SMTP and by using a Transmission Control Protocol (TCP) connection to port 691 in a routing group.
Link State Table
The in-memory database each Exchange 2000 server uses to store the link state information that is propagated by the LSA. The link state table is used to evaluate the most efficient route for a message based on cost and connection availability.
The message categorizer examines messages that come to an SMTP server and determines what to do with the messages. The messages may be destined for the local information store, a remote host by means of the message transfer agent (MTA), or a remote host by means of SMTP. The categorizer also handles distribution list (DL) expansion. The categorizer is a plug-in to the AQ engine. It is essentially a collection of event sinks that perform advanced address resolution on every message that travels through AQ.
Message Transfer Agent
The MTA continues to be an important part of the system in Exchange 2000. The MTA is updated in a number of ways. With respect to the AQ code, the most important update is that the MTA uses calls to the Exchange 2000 routing system, instead of relying on the Gateway Address Routing Table (GWART). The GWART uses next-hop routing, which is more likely to loop than the advanced link state routing that the Exchange 2000 routing system uses. In Exchange 2000, X.400 and other connectors benefit from the same loop-free routing that SMTP uses.
The routing engine is an important part of Exchange 2000. Exchange 2000 adds link-state routing to the AQ architecture by providing accurate next-hop information to the AQ module. The advanced technology that is used in the routing component minimizes mail loops that occur because of link state changes.
The routing engine uses a variant of Dijkstra's Single Source Shortest Path algorithm. Dijkstra's algorithm solves the problem of finding the shortest path from a point in a graph (the source) to a destination. If you use the algorithm, you can find the shortest paths from a given source to all points in a graph in the same time, which explains the name Single Source Shortest Paths algorithm.
A Routing Group (RG) is a collection of Exchange 2000 servers that can transfer messaging data to one another in a single hop without using a bridgehead server. In general, Exchange 2000 servers in a single routing group have high-bandwidth, resilient network links between each other.Additionally, a routing group defines public folder access for Microsoft Outlook clients.
Routing Group Connector
The Routing Group Connector (RGC) in Exchange 2000 connects routing groups to one another. An RGC is one directional and can have separate configuration properties (such as allowable message types over the connection). RGCs use the concept of local and remote bridgeheads to dictate which servers in the routing groups can communicate over the link. The underlying message transport for an RGC is either SMTP or remote procedure call (RPC), depending on the version of Exchange Server that uses the connector. An RGC that is set up between Exchange 2000 servers uses SMTP. An RGC that is set up between an Exchange 2000 server and an Exchange Server 5.5 computer uses RPC. To the Exchange Server 5.5 computer, the RGC is the equivalent of a site connector. Link state information is used to route messages efficiently.
Simple Mail Transfer Protocol
Simple Mail Transfer Protocol (SMTP) is a standards-based protocol that enables different messaging servers to transfer messages between each other. SMTP is defined under RFC 821, and uses simple command verbs to facilitate message transport over Transmission Control Protocol/Internet Protocol (TCP/IP) port 25.
The information store manages the storage of data. It continues to be referred to as the Messaging Database (MDB), but there are major design changes to the MDB in Exchange 2000, as well as the option to have multiple MDBs. In Exchange 2000, the information store can store data in the form of e-mail messages, documents, spreadsheets, voice, video, and so on. The message contents (in the RFC 822 format) are held in an Internet content store (.stm file), which is also referred to as the streaming database file. The information store also contains the .edb file, which is the property store and holds the header information of the message.
The store driver in Exchange 2000 delivers inbound messages from the AQ engine to the Exchange 2000 information store for local delivery, submits messages from the information store to AQ for categorization and possibly for outbound delivery, delivers messages from AQ to other (non-SMTP) gateways, and enables an Imsg memory structure that is queued in AQ to be persistent in the information store.
The store driver consists of two dynamic-link libraries (DLLs): one that runs in IIS and another that runs in the information store. The two DLLs communicate with each other by using Epoxy (the shared memory queue system).