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 4’s 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: