|
Tech Support
Internet Exchange Frequently Asked Questions
Internet Exchange Messaging Server
SMTP Subsystem FAQ
Overview
The Simple Mail Transfer Protocol (SMTP) is the
protocol or language used to transport electronic mail over the Internet. In
addition to transporting mail between and among directly connected Internet sites, SMTP
(defined by RFC-821) can also be used as
a common mail backbone between organizations that use other types of mail systems, with
the intermediate trannsport performed using Internet mail relays.
The Internet Exchange Messaging Server SMTP Subsystem (both Enterprise
and Workgroup versions) uses SMTP to send and receive messages over the Internet.
SMTP is closely associated with a specific message format, defined by RFC-822, which is defines the the basic
mail format used over the Internet. Until the arrival of MIME, non-structured
RFC-822 messages was the only standard message type carried by SMTP.
SMTPD
SMTPD is a background server process, which runs
continusously to listen for incoming messages from the Internet. Whenever new
connection requests for incoming mail are detected, SMTPD creates a new thread that
manages that connection. It is capable of creating multiple threads for simultaneous
processing of multiple messages, thereby minimizing delay in message delivery.
SMTPD is designed to support the ESMTP service extensions DSN (Delivery
Status Notification), as well as the 8BITMIME, MESSAGE SIZE, and ETRN extensions for
downstream dialup connected sites. It features a multithreaded model to achieve high
performance and can process multiple SMTP connections simultaneously. Once a message
is received by the worker thread, it is submitted to the Internet Exchange MTA Shared
Queue. SMTPD also performs several anti-spam checks at the SMTP level before the
message enters the Internet Exchange Shared Message Queue.
Multithreaded Architecture
In order to achieve optimal high performance, SMTPD
features a multithreaded architecture. This multithreaded architecture allows it to
support concurrent, multiple SMTP connections. The Master Thread Manager is
responsible for listening to the SMTP port and waiting for incoming SMTP requests from
other SMTP MTA's. Once an SMTP connection request is received, the Master Thread
Manager creates a new SMTP worker thread to handle that SMTP connection. The number
of simultaneous SMTP connections is limited only by system resources such as the TCP stack
and memory.
SMTPD supports the following features:
ESMTP Support
SIZE (Message Size Declaration)
ETRN (Remote Message Queue Starting)
8BITMIME (8bit-MIME Transport)
DSN
Anti-Spam Defense
SMTP Connection Restriction
Mail Relay Authorization
Reverse DNS Lookup Verification
Real-Time Blackhole List (RBL) Support
SMTPC
SMTPC is responsible for delivering messages to the
Internet via the SMTP protocol. It supports the ESMTP service extensions SIZE, 8BITMIME,
ETRN and DSN. For fast message delivery, Internet Exchange 4s SMTPC Module features
an efficient queuing strategy that supports two types of independent queues: the Pending
Queue and the Deferred Queue. It also provides a mechanism for message
priority handling based on the calculated message priority weight.
To achieve high scalability and performance, SMTPC incorporates a
hierarchical multithreaded architecture. The SMTPC Queue Router is responsible for
retrieving messages from the Internet Exchange Shared Queue and transferring them to the
internal message queue via the Mail Queue Switch, while SMTPC Master Queue Manager is
responsible for controlling and synchronizing the Pending Queue Processors and the
Deferred Queue Processors.
Each machine running SMTPC is capable of maintaining multiple simultaneous outbound SMTP
connections. The Internet Exchange Messaging Server's SMTPC Module features an
innovative approach to queue management that supports server-side ETRN requests and
provides a mechanism for message priority handling. This architecture guarantees not
only high throughput, but also the orderly handling of messages of different priorities.
The module comes with the SMTPC Queue Router, which retrieves outgoing messages
from the Message Switch and determines whether they should be routed to the Pending Queue
or to the Deferred Queue. A shared message queue structure is designed for these
queues, so as to achieve efficient usage of system memory. Each queue can have one
or more queue processors active at a time, each of which will further create multiple
SMTPC worker threads to process multiple simultaneous outbound messages and send them to
their next destination across the Internet.
Additional SMTP Documentation
Additonal information on the SMTP subsystem can be found in the
following documents:
|