MTA 传输堆栈和 X.400 连接器

 

上一次修改主题: 2005-05-23

X.400 标准基于在 X.200 建议标准中所定义的开放式系统互联 (OSI) 参考模型。Exchange MTA 包含 OSI 堆栈最上面四层的代码(即应用层、表示层、会话层和传输层)。在 OSI 传输层下面,MTA 依赖于安装在操作系统中的驱动程序。

OSI 参考模型由七层组成,如下图所示。

cced4d7d-9625-4685-be14-587a54002f65

如此图所示,TCP/IP 协议与 OSI 堆栈并不完全一致。这是因为尽管 TCP/IP 协议是分层的协议堆栈,但它并不符合 OSI(尽管 TCP/IP 的大多数元素都可以映射到 OSI)。TCP/IP 最初是由高级研究计划署 (ARPA) 开发的,它以被称为 TCP/IP 模型(有时称为 Internet 模型)的四层模型为基础。为了按照 OSI 标准支持在 TCP/IP 之上的 X.400 通信,Exchange MTA 在 TCP/IP 顶部实现了传输协议类 0 (TP0) 接口(RFC 1006 对此进行了定义)。

Exchange MTA 还可以使用 RPC 作为传输机制来与 LAN-MTA 和 XAPI 网关进行通信。RPC 代表了在应用层的通信机制,因为 RPC 运行时库包括表示和会话服务。但在 MTA 堆栈的上下文中,RPC 在会话层的下面实现了一个接口。RPC 运行时的内部服务对 MTA 是透明的。

X.25 协议是符合 OSI 的协议,它是专门为在数据包转换网络(例如,公共 X.400 提供商)上的广域网 (WAN) 连接而设计的。MTA 传输直接使用 X.25 协议进行连接,这是因为 X.25 拥有对传输层的传输类 0 (TP0) 协议接口。在数据链路层的 OSI 端上,X.25 依赖于高级别的数据链路控制 - 链路访问过程平衡 (HDLC-LAPB) 协议。HDLC-LAPB 是一个被 EICONX.25 卡用来与将服务器连接到公用 X.25 网络的同步调制解调器通信的协议。作为网络协议,X.25 在 HDLC 的顶部操作,以便本地系统可以与 X.25 网络中的下一个节点通信。Exchange 只支持 EICON X.25 卡。

note注意:
OSI 参考模型在传输层定义了从 TP0 到 TP4 五个协议。从 0 到 4,协议的复杂性依次增加。TP0 执行分段和重新组装任务,而没有任何错误恢复能力。TP1 执行分段和重新组装以及错误恢复。TP2 有多路和反多路技术能力。TP3 组合了 TP0、TP1 和 TP2 的所有功能。TP4 将可靠的传输服务添加到 TP3。TP4 基本上是等价于 TCP 的 OSI,并且大多数情况下被无法使用 TCP/IP 协议的 X.400 MTA 所使用(例如,更早的 Microsoft Mail Gateway to X.400)。Exchange Server 2003 不支持 TP4,因为 TP4 协议堆栈在 Windows Server 2003 中不可用。注册表参数(例如可以在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeMTA\Parameters 下面找到的 TP4 control blocksTP4 threads)是用于运行在 Microsoft Windows NT(在其上 TP4 协议可用)上的 Exchange Server 5.5 的旧版参数。这些设置与 Exchange Server 2003 没有关系。

邮件传输服务

本节前面描写的 MTA 进程中的 XFER IN 和 XFER OUT 线程负责启动 MTA 的邮件传输服务。邮件传输服务元素 (MTSE) 使用可靠传输服务元素 (RTSE) 将邮件通过连接发送到远程 MTA 和关联控制服务元素 (ACSE),以便建立和断开连接。

MTSE 相互交换的邮件被命名为 P1 邮件,以表明它们的格式。P1 协议定义了邮件传输信封的格式。信封包含实际的邮件,外加路由和控制字段,以使 MTSE 能够路由和跟踪邮件,并跟踪邮件内容。下图显示了在 Aspirin 工具中的 P1 邮件传输信封的示例。Aspirin 是一个 ASN.1 语法分析程序,可以在“Exchange 2000 Server 资源工具包”(可在书店中购买)中找到该程序。在 X.400 中,使用 ASN.1 语法对数据进行格式化。

7cc7c97d-47dc-4eb3-bd82-5069f48e4478

实际的邮件位于 P1 信封的 X400COM_Content 部分。通常按照 P2/P22 协议(该协议描述了人际邮件的格式)来格式化邮件。Exchange MTA 支持其他邮件格式,例如用于军事邮件的 P772 和 P42。下表列出了 Exchange MTA 支持的邮件格式。但应当注意的是,这些格式并非全部符合 X.400 标准。某些邮件格式是特定于 Exchange Server 的。

Exchange Server 2003 所支持的邮件格式

格式 内容类型 对象标识符

MDBEF

  • Microsoft 数据库编码格式 (MDBEF)。
  • Microsoft 定义和注册的内容类型。
  • 也称为“MS Exchange Contents”。
  • 不符合 X.400。只能在同一个组织内的 Exchange MTA 之间使用。

2A864886F7140501

公用文件夹 MDBEF

  • Microsoft 为公用文件夹复制邮件定义的内容类型。
  • 不符合 X.400。只能在同一个组织内的 Exchange MTA 之间使用。

2A864886F7140502

P2

  • 以 1984 标准年份的 X.400 定义。
  • 定义人际邮件 (IPM) 的格式。

56010A00

P22

  • 以 1988 标准年份的 X.400 定义。
  • 扩展以 X.400-84 标准定义的人际邮件 (IPM) 的格式。

56010A01

P772

  • 军事邮件。
  • 使用为“联合通信发布 (ACP) 123”中的防卫邮件系统 (DMS) 所定义的扩展属性来扩展 P22 协议。
  • 这些扩展(额外属性)是 X.400 标准允许的,并且通常只由启用 DMS 的客户端和 STANAG 4406 v1.7 和 v3 客户端暴露。

2B1A00A236000401

P42

  • 安全的军事邮件。
  • 已使用邮件安全协议版本 3 (MSP3) 进行数字签名、加密或者签名并加密的军事邮件(在 DMS 中不允许只加密)。
  • 证书是 X.509 并类似于 S/MIME V1。
  • 也称为“MSP3”。

60864801650201022A

CSP

  • 公共安全协议。
  • 在 DMS 中用于定义安全的军事邮件。
  • 已使用邮件安全协议版本 4 (MSP4) 进行数字签名或签名并加密的军事邮件。
  • 证书是 X.509 并且类似于 S/MIME V3。
  • 在 DMS 程序中,该格式称为“ACP120”或“MSP4”。

608648016502010203

TNEF

  • 传输中立编码格式 (TNEF)。
  • Microsoft 定义和注册的内容类型。
  • 也称为“MAPI”。
  • 符合 X.400 因为邮件及其所有附件都被封装并作为二进制附件附加到邮件本身中。
  • 接收方客户端必须能够解码 TNEF,否则客户端将显示没有用处的、称为 Winmail.dat 的附件。有关 TNEF 的详细讨论,请参阅 SMTP 传输体系结构

2A864886F7140502

下图说明了 P1 和 P2 协议如何映射到 Exchange Server 2003 的体系结构。

a17c8076-ce84-4836-ab5e-8919f0cb8451

note注意:
X.400 标准定义了客户端与 MTA (P3) 和邮件存储 (P7) 进行交互的协议。但是,Exchange Server 2003 中没有使用这些协议。在 Exchange Server 2003 中,客户端不直接与 MTA通信,也不使用 RPC(例如,队列查看器管理单元)。与 Exchange 存储的客户端通信基于 MAPI 或 Internet 协议。

可靠传输服务

MTSE 想向另一个 MTA 发送邮件时,它使用可靠传输服务接口 (RTSI) 来调用 RTSE。MTA 包含一个决定哪些数据包将通过 RTSE 发送的状态机器。然后,RTSE 发送数据包。例如,MTA 向 RTSE 发出 RT_TRANSFER_REQUEST,然后 RTSE 尝试将给定邮件传输到其他 MTA。发送邮件之后,RTSE 向 MTSE 返回 RT_TRANSFER_CONFIRMED,以便 MTA 可以将邮件标记为已传输。X.228 给出了状态机器的详细信息。

RTSE 通过将数据转换为一个八进制的字符串来提供可靠数据传输。然后,它将字符串分割成名为应用程序协议数据单元 (APDU) 的数据段,然后将每个 APDU 递交给表示层进行传递。RTSE 确保 APDU 在 MTA 之间传输时无重复并完整无缺地到达目的地。如果由于任何原因使连接中断,RTSE 将负责重新尝试数据传输。通过建立检查点,RTSE 支持在 APDU 之间进行智能恢复。检查点使 RTSE 能够在发生中断的点上继续执行 APDU 传输,而不是重新传输整个 APDU。会话层的活动和次要同步功能支持在丢失基础网络连接时中断并在可能情况下恢复数据传输。

note注意:
可以在 X.400 连接器或 MTA 目录对象的 RTS 值中配置检查点大小、窗口大小和恢复超时。

RTSE 提供的服务属于以下三个类别:

  • 关联建立 关联是用于通过物理连接进行邮件传输目的的、两个 MTA 之间的逻辑连接。MTA 可以通过单个物理连接建立多个关联,以便并发地发送多个邮件。RTSE 使用 RT-OPEN REQUEST (RTORQ) APDU 建立关联。RT-OPEN-ACCEPT (RTOAC) APDU 用于在对请求的肯定响应中在两个 MTA 之间建立关联。另一方面,RT-OPEN-REJECT (RTORJ) APDU 用于在对请求的否定响应中建立关联。
  • 数据传输 RTSE 使用 RT-TRANSFER APDU 进行数据传输。对话框可能是单向或双向交替的,这取决于数据是否只从一个 MTA 传输或在两个方向上轮流传输。双向交替链路上的每个关联都有一个轮流令牌,每次只能有一个 MTA 可以拥有它。如果 MTA 必须发送邮件,但在打开的关联上却没有轮到它,那么,它必须确定在链路上有多少打开的关联。如果有少于八个关联,则 MTA 会尝试打开一个轮到它的新关联。如果已经有八个打开的关联,MTA 将通过一个关联发送 RT_TURN_PLEASE 请求。如果接收方 MTA 可以释放轮流令牌,那么它将发送 RT_TURN_GIVE 响应,并允许发出请求的 MTA 传输邮件。如果接收方 MTA 无法释放轮流令牌,那么它只在已经可以释放轮流令牌后才会作出响应。在双向交替通信中,RTSE 可以使用 RT-TURN-PLEASE 和 RT-TURN-GIVE APDU 来切换数据传输方向,如下所述:
    • RT-TURN-PLEASE 如果一个 MTA 有轮流令牌,并收到来自另一个 MTA 的 RT-TURN-PLEASE 请求,则该 MTA 将发出一个 P-TOKEN-PLEASE 请求基元,以便发出请求的 MTA 可以成为发送方 MTA。RT_TURN_PLEASE 请求可以有不同的优先级,这些优先级与邮件的优先级相关。优先级 0 被保留用于 MTA 想要关闭关联或 MTA 想要发送路由信息时。
    • RT-TURN-GIVE 如果 MTA 有轮流令牌,并且收到来自请求方 MTA 的 RT-TURN-GIVE 请求基元,那么它会发出 P-CONTROL-GIVE 请求基元,并成为接收方 MTA。
  • 关联终止 RTSE 使用 RT-CLOSE、RT-U-ABORT 和 RT-P-ABORT APDU 来结束关联,如下所述:
    • RT-CLOSE 当 RTSE 有轮流令牌时,并且如果没有未完成的 RT-TRANSFER 确认,那么 RTSE 可能发出 RT-CLOSE 请求。RTSE 收到 RT-CLOSE 响应时,RTSE 会发出 A-RELEASE 数据包来结束关联。
    • RT-U-ABORT 这是一个由 MTA 启动的取消,该取消是在 MTA 希望取消关联时触发的。例如,如果由于一个 MTA 使用 1988 标准年份的 X.400 功能而造成 1984 标准年份的 MTA 负担过重,则 1984 标准年份的 MTA 可以取消关联 。
    • RT-P-ABORT 这是提供程序启动的关联取消,该取消是在通信发生故障后无法恢复时触发的。例如,在无效状态下接收数据包(例如,发送 APDU 而没有首先建立关联)会导致 RT-P-ABORT。

Exchange MTA 使用 RTS 线程池来处理 OSI 堆栈的 RTSE 级别。可以使用以下注册表参数来控制 RTS 线程数。

Caution警告:
错误地使用注册表编辑器可能导致严重的问题,甚至可能需要重新安装操作系统。Microsoft 无法保证错误使用注册表编辑器所导致的问题可以得到解决。请自行承担使用注册表编辑器的风险。

位置

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\

MSExchangeMTA\Parameters

RTS threads

类型

REG_DWORD

数值数据

0x1

描述

确定 RTS 线程数。

默认值为 0x1。如果该 MTA 与多个 MTA 在路由组内或在路由组之间通信,则建议值是 0x3。

note注意:
如果 RTS 线程数设置得太高,则 RTS 线程可能使 OSI 堆栈中的其他线程超载,从而导致邮件传输速度降低。

关联控制服务

关联控制服务元素 (ACSE) 是 OSI 模型中每个面向连接的应用程序实体(例如,X.400 MTA)的组件,该应用程序实体必须通过连接而为传输数据建立从应用程序到应用程序 (MTA to MTA) 的关联。关联为 MTA 之间的通信建立上下文。例如,如果一个 MTA 进程向另一个 MTA 发送数据,那么另一个 MTA 必须能够正确解释数据并作出响应。MTA 可以在单个物理连接上建立多个关联,以便并发传输多个邮件。

ACSE 向 RTSE 提供了两种类型的服务:

  • 关联建立 关联建立是由 A-ASSOCIATE 服务提供的。
  • 关联终止 关联终止是由三个服务提供的:
    • A-RELEASE 这是用来结束关联的正常释放机制。
    • A-ABORT 这是未经确认(突然)的关联取消。
    • A-P-ABORT 这是类似 A-ABORT 的未经确认(突然)的关联取消。差异是 A-P-ABORT 会告知远程 MTA:关联已被位于更低 OSI 层的服务提供方断开。

两个 MTA 之间的每个连接都可以有最多十个关联,并且因为每个关联实际上是会话,因此可以通过单个 X.400 连接器同时发送最多十个邮件。十个关联中有两个是为发送紧急邮件保留的。每个 MTA 持有两个关联中某一个上的轮流令牌,并且永远不释放轮流令牌。如果远程 MTA 试图为正常优先级的邮件建立八个以上的并发关联,那么 Exchange MTA 将拒绝额外的关联,并将事件 ID 为 58 的事件记录在应用程序事件日志中。下面是该事件的示例:

Event Type: Warning

Event Source: MSExchangeMTA

Event Category: X.400 Service

Event ID: 58

Date: 04/01/2004

Time: 4:27:34 AM

User: N/A

Computer: SERVER01

Description:

The /O=TAILSPIN TOYS/OU=FIRST ADMINISTRATIVE GROUP/CN=CONFIGURATION/CN=SERVERS/CN=

SERVER01/CN=MICROSOFT MTA entity has reached the per-entity receive association limit of 8, equal to 80 percent of the total 10. [MTA XFER-IN 36 34] (12)

note注意:
Exchange MTA 在所有连接(包括 X.400 连接器、与 LAN-MTA 的 RPC 连接和 XAPI 会话)上有总计 2,050 个关联限额。该限额是硬编码的,无法更改。

表示和会话服务

表示服务提供程序向 RTSE 提供基本数据传输服务,以便将 RT-TRANSFER APDU 传递到远程 MTA。表示服务提供程序将来自更高级别的 APDU 打包到表示协议数据单元 (PPDU) 中,并且会话层的服务提供程序将进一步的信息添加到数据包中,以便创建有效的会话协议数据单元 (SPDU)。

通过表示层发送的第一个信息是 P-ACTIVITY-START 指示。如果邮件是大型邮件,MTA 可能必须发送一个以上的 P-DATA 数据包。P-DATA 数据包不被接收方 MTA 确认,因此发送方 MTA 还会在 P-DATA 数据包之间发送 P-MINOR-SYNCHRONIZE 指示。接收方 MTA 使用 P-MINOR-SYNCHRONIZE 确认基元来确认次要同步点。但是,次要同步点不必被立即确认。有一个窗口大小用于设置在任何时候可以有多少个次要同步点处于未完成状态。已经传输整个邮件之后,将发送 P-ACTIVITY-END 请求。接收方 MTA 确认 P-ACTIVITY-END 时,RTSE 将 RT_TRANSFER_CONFIRMED 基元传递给该 MTA,并且该 MTA 将收件人标记为已处理。

这个传输过程是由表示层中的以下事件驱动的:

  1. RT-TRANSFER 请求。
  2. P-ACTIVITY-START 指示,每个后面是一个或多个 P-DATA 数据包,除了最后一个外,这些数据包的后面是 P-MINOR-SYNCHRONIZE 指示。
  3. P-MINOR-SYNCHRONIZE 确认。
  4. P-ACTIVITY-END 指示。
  5. P-ACTIVITY-END 确认。

RTSE 还需要会话层提供的同步服务,以便得到避免数据损失的保护。具体来说,RTSE 必须将已成功传递到接收方 MTA 的数据与未能到达其预定目标的数据区分开来,在后一种情况下,RTSE 可能请求重新传输数据。

为了处理 OSI 堆栈中的表示服务和会话服务,Exchange MTA 使用了一个内核线程池。通过以下注册表参数,可以控制内核线程数:

位置

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\

MSExchangeMTA\Parameters

Kernel threads

类型

REG_DWORD

数值数据

0x1

描述

确定用于处理 OSI 堆栈的表示和会话级别的 MTA 内核线程数。

默认值为 0x1。如果此 MTA 使用 RPC 并通过缓慢或高度延迟的网络连接来与 LAN-MTA 通信,请调整该设置。

推荐设置

  • 0x3:标准建议值。
  • 0x8:如果 Exchange Server 2003 MTA 所属的路由组包含超过 15 台 Exchange 5.5 服务器。
  • 0xC (12):如果 Exchange Server 2003 MTA 所属的路由组包含超过 30 台 Exchange 5.5 服务器。

MTA 传输堆栈

若要使 Exchange MTA 能够使用 OSI 传输堆栈与远程 X.400 MTA 通信,必须在网络、传输、会话和表示层定义几个 OSI 地址。这要通过 MTA 传输堆栈来完成。可以在 Exchange 系统管理器中安装传输堆栈,要这样做,请用鼠标右键单击“X.400”配置对象,再指向“新建”,然后单击“TCP/IP X.400 服务传输堆栈”或“X.25 X.400 服务传输堆栈”。将出现对话框,请在其中指定网络地址(即主机名、IP 地址或 X.121 地址)、传输服务访问点 (TSAP)、会话服务访问点 (SSAP) 和表示服务访问点 (PSAP)。分别在“T 选择器”、“S 选择器”和“P 选择器”框中输入 TSAP、SSAP 和 PSAP。

因为 Microsoft Exchange MTA Stacks 服务不与其他 MTA 共享 OSI 堆栈,所以 TSAP、SSAP 和 PSAP 是 Exchange 服务器的可选参数。但是,如果远程 MTA 使用 OSI 地址信息来连接本地 MTA,则必须为本地 MTA 定义这些参数。否则,无法发生通信。有可能覆盖每个 X.400 连接器的 OSI 地址信息。本节随后将讨论 X.400 连接器配置参数。

note注意:
按照 1984 标准年份操作的 X.400 MTA 只支持 TSAP。不应当指定 SSAP 和 PSAP。

若要支持 X.400 连接器,必须安装下面两个 MTA 传输堆栈中的某一个:

  • TCP/IP 传输堆栈 对于通过 Internet 和 Intranet 的 X.400 邮件传输,TCP/IP 是个好的选择。TCP/IP 传输堆栈在 TCP/IP 顶部实现了 ISO 传输服务,Request for Comments (RFC) 1006 对此进行了定义。安装和配置 TCP/IP 传输堆栈时,将在 Active Directory 中创建一个配置对象,用于定义服务访问点和 MTA 要使用的其他设置。传输堆栈对象位于 MTA 目录对象下面的配置目录分区中。可以使用以下 LDIFDE 命令,将 Exchange 组织内所有服务器上所配置的所有 TCP/IP 传输堆栈导出到名为 Stacklist.ldf 的文件中: ldifde -f c:\Stacklist.ldf -s localhost -d "CN=First Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=contoso,DC=com" -p subtree -r "(objectClass= rFC1006Stack)"
    下表描述了 TCP/IP 传输堆栈的重要属性。

    TCP/IP 传输堆栈对象的重要属性

    属性 描述

    objectClass

    指示作为 rFC1006Stack 的目录对象的类。

    nAddressType

    指示 nAddress 属性中的信息的类型。地址信息可以是主机名称或 IP 地址。

    nAddress

    指定本地 Exchange MTA 的主机名称或 IP 地址。

    tSelector

    指定堆栈的 OSI 地址信息中的 TSAP。

    sSelector

    指定堆栈的 OSI 地址信息中的 SSAP。

    pSelector

    指定堆栈的 OSI 地址信息中的 PSAP。

    supportingStackBL

    列出使用该传输堆栈的 X.400 连接器的可分辨名称。

    x400SelectorSyntax

    指示在 tSelector、sSelector 和 pSelector 属性中的信息的类型。OSI 地址信息可以是十六进制值或十进制值。

    name

    指定显示在 Exchange 系统管理器中的传输堆栈对象的名称。

  • X.25 传输堆栈 必须在运行 Exchange Server 2003 的服务器安装 EICON X.25 卡,并在 Windows Server 2003 中安装 EICON WAN 驱动程序,然后才能通过 X.25 支持 X.400 连接器。X.25 配置非常复杂,只能通过使用 EICON X.25 卡所附带的配置实用程序来完成该配置。X.121 地址(相当于电话号码)是必须配置的最重要的信息。按照 X.25 提供商的要求,在 X.25 传输堆栈中指定的 X.121 地址数据、呼叫用户数据和设备数据必须与 EICON 卡配置相匹配。
    可以使用以下 LDIFDE 命令将在 Exchange 组织内的所有服务器上配置的所有 X.25 传输堆栈对象从 Active Directory 导出到名为 Stacklist.ldf 的文件中: ldifde -f c:\Stacklist.ldf -s localhost -d "CN=First Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=contoso,DC=com" -p subtree -r "(objectClass= x25Stack)"
    下表描述了 X.25 传输堆栈的重要属性。

    X.25 传输堆栈对象的重要属性

    属性 描述

    objectClass

    指示作为 x25Stack 的目录对象的类。

    nAddress

    指定本地 X.121 地址。

    x25CallUserDataIncoming

    指定 X.25 适配器的呼叫用户数据。

    x25FacilitiesDataIncoming

    指定 X.25 适配器的设备用户数据。

    x25LeasedLinePort

    指定适应 X.25 的端口号。

    tSelector

    指定堆栈的 OSI 地址信息中的 TSAP。

    sSelector

    指定堆栈的 OSI 地址信息中的 SSAP。

    pSelector

    指定堆栈的 OSI 地址信息中的 PSAP。

    supportingStackBL

    列出使用该传输堆栈的 X.400 连接器的可分辨名称。

    x400SelectorSyntax

    指示在 tSelector、sSelector 和 pSelector 属性中的信息的类型。OSI 地址信息可以是十六进制值或十进制值。

    name

    指定显示在 Exchange 系统管理器中的传输堆栈对象的名称。

MTA 通信示例

下图说明 MTA 如何通过 RTSI 和 OSI 堆栈打开连接。在 MTA 之间的每次数据传输必须沿 OSI 堆栈的一端向下通过会话层和传输层移动,并在另一个 MTA 的堆栈上向上返回。当 MTA 通过 OSI 堆栈发送邮件时,MTA 或者发送请求,或者作出响应。请求作为指示到达另一个 MTA,而响应则作为确认出现。

3c941143-a001-40c7-8ed6-24abeacd1fc1

为了在 OSI 堆栈的传输层处理通信,Exchange MTA 将使用传输线程。通过以下注册表参数,可以配置 MTA 所使用的传输线程数:

位置

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\

MSExchangeMTA\Parameters

Transport threads

类型

REG_DWORD

数值数据

0x1

描述

确定传输线程数。

默认值为 0x1。如果该 MTA 通过多个 X.400 连接器与远程 MTA 通信,则建议值是 0x3。

X.400 连接器

在分布式环境中,如果不认真协调执行通信的 MTA 进程,则可能会发生通信冲突。例如,Exchange MTA 是 1988 X.400 MTA,在与 1984 MTA 通信时,则必须缩减它的功能。

note注意:
所有 Exchange 版本都包括 1988 X.400 MTA。Microsoft Mail for PC Networks Gateway to X.400 是 1984 X.400 MTA 的示例。

配置 X.400 连接器

要理解远程 X.400 MTA 所支持的功能,必须配置一个与该远程 MTA 连接的 X.400 连接器。首先,确保已经配置了合适的 MTA 传输堆栈,然后,在 Exchange 系统管理器中展开想要在其中添加 X.400 连接器的路由组,用鼠标右键单击“连接器”,指向“新建”,然后按照服务器的配置单击“TCP X.400 连接器”或“X.25 X.400 连接器”。

下图显示示例 X.400 连接器的“属性”对话框。

5603d8a0-f49a-4392-88d0-06efdca75bf5

您将看见一个如图 7.12 所示的对话框,该对话框有以下选项卡:

  • 常规:该选项卡用来定义名称、远程 X.400 MTA 和密码、以及传输堆栈。还可以使用该选项卡来指定远程客户端是否支持 MAPI 以及是否允许公用文件夹引用。
  • 日程安排:该选项卡用来设置通信日程安排。可能配置:“从不”、“始终”(通信持续发生)、“选定时间”(最高 15 分钟的间隔)和“远程启动”。
  • 堆栈:该选项卡用来指定所需的地址信息,例如远程主机名称或 IP 地址(或 X.121 地址),以及远程系统的服务访问点。
  • 首选参数:该选项卡用来替代本地 MTA 的默认 X.400 属性。
  • 地址空间:该选项卡用来定义路由地址的类型和格式。成本值与地址空间关联,以便优化路由。此外,可以指定该连接器是否对整个组织可用,或只限于本地路由组使用。
  • 高级:该选项卡用来指定在向远程 X.400 系统或运行 Exchange 的服务器发送邮件时 X.400 邮件的格式和传输过程。
  • 内容限制:该选项卡用来指定哪些邮件类型可以按照优先级(高、正常或低)、邮件类型(系统邮件或非系统邮件)以及邮件大小(允许的大小)通过连接器。
  • 详细信息:该选项卡用来指定用于告知目的的管理注释。
  • 连接的路由组:该选项卡用来指定可以通过该 X.400 连接器到达的远程路由组的名称。
  • 传递限制:该选项卡用来指定谁可以通过该连接器发送邮件。默认情况下,接受来自每个人的邮件。

连接请求信息

每个 X.400 连接都是安全连接。这意味着一个 MTA 如果试图联系另一个 MTA,前者必须在连接请求中标识它自己。标识信息包括本地和远程 MTA 的名称和密码。如果该信息与远程 X.400 系统的配置不匹配,则连接请求会被拒绝,并且不传输邮件。

可以在 X.400 对象的“属性”中,从服务器的“协议”容器指定本地 MTA 的名称和密码。远程 MTA 的管理员必须确保也要在远程 MTA 上正确指定该信息。而且,要正确配置本地 MTA,必须从远程管理员那里获得远程 MTA 的名称和密码。要指定远程 MTA 的名称和密码,请从“常规”选项卡上单击“修改”。

note注意:
MTA 密码是区分大小写的。如果拼写错误,则无法建立连接。

尤其是在连接到公用 X.400 网络时,系统可能强制您以每个连接器为单位替代本地 MTA 的名称和密码。公用 X.400 运营商通常提供了必须使用的所需信息。要以每个连接器为单位调整配置,请使用“首选参数”选项卡。而且,可以从该选项卡调整各种 X.400 协议参数,例如本章前面讨论过的“最大打开重试次数”和“最大传输重试次数”。

传出和传入 OSI 地址信息

要指定应当如何与远程 MTA 联系,请在连接器属性中的“堆栈”选项卡上配置 OSI 地址信息。最重要的是,必须指定远程 MTA 的网络地址(IP 地址、主机名或 X.121 地址)以及任何 TSAP、SSAP 或 PSAP(如果远程 MTA 上定义了它们)。“堆栈”选项卡上的值全都针对远程系统。本地 OSI 地址信息是在 MTA 传输堆栈中指定的,前面已经对此进行了解释。如果尚未在本地 MTA 传输堆栈中指定任何 OSI 地址信息,则 Exchange MTA 期望设置与远程 MTA 的传出 OSI 地址信息中所定义的 TSAP、SSAP 或 PSAP 相同的值。有关 OSI 地址配置的详细信息,请参阅 Microsoft 知识库文章 152934“XCON: X.400 Connector Stack Property Page Behavior”(英文)。

X.400 地址

X.400 系统使用复杂的寻址方案来进行邮件路由和传递。最重要的 X.400 地址类型称为记忆原始发件人/收件人 (O/R) 名称或 O/R 地址。记忆 O/R 地址基于国家/地区、管理域 (ADMD) 和私人管理域 (PRMD) 来标识收件人。必须有进一步的地址信息(例如,姓和名)才能形成完整的地址。

每个 X.400 地址必须包含管理域信息。管理域基本上是由单个组织维护的邮件传输网络。该组织可以是公共运营机构(例如,电信公司),也可以是私人组织。根据 ITU-T 建议,PRMD 处理内部邮件,而目的地为其他 PRMD 的外部邮件则总是由公共 ADMD(电信公司)处理。在理论上,假定 PRMD 通过 ADMD 进行相互通信。但实际上,PRMD 通常绕开电信-ADMD 而直接相互通信(例如,使用 TCP/IP over Internet),这样可以降低成本。

note注意:
国家/地区、ADMD 和 PRMD 的字段是强制性的。如果邮件传输网络没有 ADMD,请在您的 X.400 地址的 ADMD 部分指定一个空格字符。ADMD 部分中的空格是“任何 ADMD”的同义词。

下表列出了可以在 O/R 名称中使用的字段。

X.400 地址中的 O/R 属性

标签 缩写 属性类型 示例

C

国家/地区

国家/地区

C=US;

A

ADMD

ADMD 名称

A=MCI;

P

PRMD

PRMD 名称

P=TAILSPINTOYS;

S

S=BREMER;

G

Given Name

G=TED;

I

缩写

缩写

I=TB;

Q

Generation

称谓

Q=SR;

CN

Common Name

Common name

CN=TED BREMBER;

X.121

X.121

X.121 地址

X.121=493098722102

N-ID

N-ID

UA 数字 ID

N-ID=208973240

T-TY

T-TY

终端类型

T-TY=TTY;

T-ID

T-ID

终端标识符

T-ID=309;

O

Organization

Organization

O=EXCHANGE;

OU1

Org.Unit.1

组织单位 1

OU1=IT;

OU2

Org.Unit.2

组织单位 2

OU2=USA;

OU3

Org.Unit.3

组织单位 3

OU3=SEA;

OU4

Org.Unit.4

组织单位 4

OU4=DOWNTOWN;

DDA

DDA

域定义属性(DDA:type=值属性)

DDA:SMTP=Ted@tailspintoys.com

note注意:
除 DDA 字段以外,O/R 名称是不区分大小写的。

X.400 地址空间

每个 X.400 连接器必须有至少一个关联的地址空间,可以在“地址空间”选项卡上指定它。路由引擎使用该信息将收件人地址与可用的地址空间信息进行比较,从而确定用于特定邮件的可能连接器。连接到远程 X.400 系统时,通常配置 X.400 地址空间。但是,还可以将 X.400 连接器与其他地址类型关联起来,例如,通过指定 SMTP 地址信息可以完成该关联,如下图所示。然后,发送到匹配的 SMTP 收件人的邮件(例如 Ted@tailspintoys.com)将通过 X.400 连接器进行路由。Exchange MTA 使用域定义属性 (DDA) 将地址信息转换为 X.400 地址,前面的表列出了这些属性。

74459c0e-b01b-4e39-9d27-92ab0a7912b2

指定非 X.400 地址空间时,必须确保接收方 MTA 可以处理非 X.400 地址信息。例如,如果目标 X.400 系统无法处理 SMTP DDA 信息,那么,将 SMTP 地址空间指定给指向该系统的 X.400 连接器不是个好的想法。在远程系统中,邮件不能成功传输。某些 X.400 系统期望封装的 SMTP 地址信息,RFC 2156“MIXER(Mime Internet X.400 增强中继)”中对此有定义,该标准描述了在 RFC 822/MIME 和 X.400 之间映射邮件格式和地址信息的方法。相应的 DDA 地址部分看起来是这样的:DDA:rfc-822=Ted@tailspintoys.com。Exchange Server 2003 使用 SMTP DDA 而不是 RFC822 DDA,并且不支持 MIXER。

note注意:
Exchange Server 5.5 支持 MIXER 功能。如果需要该功能,应当在您的组织中维护一个 Exchange 5.5 桥头。

标准年份和正文部分

使用“高级”选项卡,可以在将组织连接到远程 X.400 系统时指定应当启用的 X.400 功能。重要的设置是 X.400 标准年份和 X.400 正文部分。例如,MTA 标准年份必须与外部系统的标准年份匹配,因为在 1984 X.400 和 1988 X.400 标准之间存在重大差异。否则,本地 MTA 会加重远程 MTA 的负担,并发生通信问题。

3c0fc9da-e2d8-432d-9e73-6fdbafbba4aa

使用“邮件文本的 X.400 正文部分”列表,还可以选择将出现在邮件正文的邮件文本的正文部分。邮件可以由几个正文部分组成,各部分都允许有电子邮件附件。下表列出了 Exchange Server 2003 所支持的正文部分。

人际邮件的 X.400 正文部分

正文部分编号 正文部分

0

IA5 文本

1

电报(ITA2 5位)

2

声音

3

G3 传真

4

文本交换格式 (TIFO)

5

电报 (T.61)

6

可视图文

7

全国定义

8

加密

9

转发的 IP 邮件

10

简单可格式化文档 (SFD)

11

文本交换格式 1 (TIF1)

12

八进制字符串

13

ISO6937 文本

14

双重定义(二进制)

15

二进制文件传输(首先在 1988 年定义)

连接到同一组织中的远程 Exchange MTA 时,可以选中“允许 Exchange 内容”复选框。本机 Exchange 格式不符合 X.400,但在 Exchange MTA 之间,这不是问题。但是,在与本地 Exchange 组织以外的 Exchange MTA 通信时,必须清除该复选框,因为本机 Exchange 内容包括 legacyExchangeDN 地址信息,而该信息只有在本地组织中才是有效的。在外部 Exchange MTA 的目录中,不存在通过 legacyExchangeDN 地址指定的收件人。

若要将 Exchange 格式的邮件发送到外部组织内的 Exchange 用户,请从连接器的“常规”选项卡上选中“远程客户端支持 MAPI”复选框。选中该复选框时,Exchange MTA 将使用传输中立封装格式 (TNEF) 来封装邮件。MTA 将邮件转换为纯文本部分和采用旧式 TNEF 的附件。有关的 TNEF 的详细信息,请参阅 SMTP 传输体系结构

邮件循环检测

X.400 定义了组织边界的概念,组织边界会影响 MTA 对于为了进行循环检测而添加到 P1 邮件传输信封中的跟踪信息的处理方式。组织中的每个 MTA 都会添加跟踪信息,以指示该 MTA 已传输此邮件。如果邮件两次到达同一个 MTA,则 MTA 可能确定邮件发生了循环并丢弃该邮件,同时产生未送达报告 (NDR)。

0c589c2d-8e1b-4b2d-aca0-8835a140a49d

MTA 可以将以下两种类型的跟踪信息添加到 P1 邮件传输信封:

  • 外部跟踪信息 外部跟踪信息用于标识曾经传输过邮件的每个 X.400 域。由全局域标识符所定义的 X.400 域是由 X.400 地址字段国家/地区、ADMD 和 PRMD 组成的。
    当邮件到达组织时,MTA 将外部跟踪信息添加到邮件中;例如,当 Exchange 存储将邮件提交给 MTA 或 MTA 收到来自另一个组织中的 MTA 的邮件时。如果 MTA 收到来自外部组织的邮件,并在外部跟踪信息中遇到它自己的本地全局域标识符,则表明检测到组织之间的邮件循环。本地全局域标识符的出现表明本地 X.400 域已经处理过该邮件,并将它路由到其他域。如果 MTA 再次接受邮件,则邮件会再次路由到其他域,而在那里它又会再次路由回本地域。这代表邮件循环,MTA 必须丢弃该邮件同时产生 NDR。

    note注意:
    Exchange MTA 不会从邮件上删除外部跟踪信息。
  • 内部跟踪信息 内部跟踪信息用于标识曾经在组织边界以内传输过邮件的每个 MTA。内部跟踪信息是由 MTA 名称和有关路由操作的信息(例如,邮件是否被中继或重新路由,或者是否导致通讯组列表 (DL) 被该 MTA 展开)组成的。如果邮件两次进入同一个 MTA,则可能将该邮件丢弃,同时产生 NDR。
    若要基于内部跟踪信息来检测邮件循环,MTA 将执行以下步骤:

    1. MTA 读取 P1 邮件传输信封的 TraceInformation 部分,以确定 MTA 以前是否处理过该邮件。
    2. MTA 确定全局域标识符是否与本地全局域标识符匹配。如果匹配,MTA 将以本地 MTA 名称与内部跟踪信息中的名称进行比较。
    3. 如果本地 MTA 名称没有出现,则表示没有检测到邮件循环。MTA 在该点停止检查。
    4. 如果出现了本地 MTA 名称,则 MTA 将检查内部跟踪信息中的路由操作信息。如果没有出现路由操作,则说明邮件未曾经过本地域,并且没有检测到邮件循环。MTA 在该点停止检查。
    5. 如果路由操作指示邮件曾经被中继,则有可能发生邮件循环。然后,MTA 检查其他操作字段,以确定邮件是否曾经被重新路由,或者通讯组列表是否曾经被展开。如果存在其中任何一种情况,则邮件可能合法地重新访问过 MTA,所以它不会被丢弃并产生 NDR。远程重播情形是邮件可能合法地重新访问 MTA 的另一种情形。Exchange Server 2003 体系结构中的 Exchange MTA中的“重播 DAT 文件”节解释了此情形。
    6. 但是,如果邮件曾经被中继并且没有指定其他操作,那么,MTA 将把邮件标记为循环并丢弃该邮件,同时产生 NDR 以通知邮件发件人该邮件没有到达它的最后目的地。

MTA 将内部跟踪信息添加到它所处理的所有邮件的 P1 邮件传输信封中。但是,当 MTA 检测到邮件将被传输到外部 X.400 域时,它必须从邮件信封中删除所有内部跟踪信息,因为在 X.400 域之间,只使用外部跟踪信息来进行循环检测。为了确定什么时候删除内部跟踪信息,MTA 将把它的本地全局域标识符与目标 MTA 的全局域标识符进行比较。

为了确定它的本地全局域标识符,Exchange MTA 将读取默认收件人策略。具体来说,Exchange MTA 从在默认收件人策略中所定义的主 X.400 地址空间中读取国家/地区、ADMD 和 PRMD 信息,以创建本地全局域标识符。可以在 Exchange 系统管理器中为 Exchange MTA 配置默认的全局域标识符。在“收件人策略”下面显示“默认策略”的属性,然后编辑 X.400 电子邮件地址条目。默认情况下,全局域标识符是:c=US;a= ;p=<Exchange 组织名称的前 16 个字母>。

note注意:
当 MTA 初始化时(就是说,在您启动 Microsoft Exchange MTA Stacks 服务时),Exchange MTA 确定本地全局域标识符。

若要确定远程 MTA 的全局域标识符,本地 MTA 将从在“地址空间”选项卡上分配给 X.400 连接器的地址空间中读取国家/地区、ADMD 和 PRMD 信息,但如果在“高级”选项卡上单击“全局域标识符”,则可以覆盖该信息。单击“指定的全局域标识符”,然后按照国家/地区、ADMD 和 PRMD 定义全局域标识符。如果想要允许 X.400 连接器使用任何 ADMD,请在“ADMD (a)”下面选择“任意”,该选择对应于空白 ADMD 字段。如果选择“指定”,则必须键入 ADMD 的值。

note注意:
如果在“高级”选项卡上选择 1984 作为 X.400 连接器的标准年份,则必须显式地配置全局域标识符。

Active Directory 中的 X.400 连接器对象

安装和配置 X.400 连接器时,就会在 Active Directory 中创建配置对象,这些对象定义了 MTA 必须使用的 X.400 功能和协议参数。连接器对象位于“连接”容器中连接器的路由组下面的配置目录分区中。路由引擎将读取此信息以初始化链路状态表,邮件路由体系结构¶Ô´Ë½øÐÐÁËÌÖÂÛ¡£

可以使用以下 LDIFDE 命令将名为“First Organization”的 Exchange 组织中的所有 X.400 连接器导出到名为 X400Connectors.ldf 的文件中: ldifde -f c:\X400Connectors.ldf -s localhost -d "CN=First Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=contoso,DC=com" -p subtree -r "(objectClass=x400Link)"

下表描述了 X.400 连接器对象的重要属性。

X.400 连接器对象的重要属性

属性 描述

activationSchedule

指定该 X.400 连接器的激活日程。

activationStyle

指定该 X.400 连接器的激活样式。(0=从不安排日程,1=使用日程)

aDMD

指定手动定义的全局域标识符的 ADMD 部分。

associationLifetime

指定在发送邮件之后系统向远程 X.400 MTA 保持关联打开的时间量(秒)。

c

指定手动定义的全局域标识符的国家/地区部分。

delivEITs

按照为该连接器所配置的内容限制,以编码格式指定可投递邮件的类型。

delivExtContTypes

指定该连接器所支持的内容类型的对象 ID。

gatewayLocalDesig

指定在建立连接时本地 MTA 使用的远程 X.400 MTA 的名称。

homeMTA

指定使用该 X.400 连接器的 MTA 的可分辨名称。

lineWrap

指定 MTA 在其后插入分行符的邮件文本的字符数。

localInitialTurn

指定本地 MTA 或远程 MTA 在打开的新关联上是否有初始轮流令牌。

msExchConnectorType

将该连接器对象指定为 X.400 连接器。

msExchEncryptedPassword

指定本地 MTA 的替代密码。

note注意:
密码在 Active Directory 受到保护,但 X.400 MTA 以明文形式传输 MTA 名称和密码。

msExchEncryptedPassword2

指定在建立与远程 X.400 MTA 的连接时本地 MTA 必须使用的密码(以加密形式)。

note注意:
密码在 Active Directory 中受到保护,但 X.400 MTA 以明文形式传输 MTA 名称和密码。

msExchNoPFConnection

指定是否允许通过该 X.400 连接器进行公用文件夹引用。只有当该连接器用来连接到相同 Exchange 组织中的另一个路由组时,该设置才是相关的。

mTALocalDesig

指定本地 MTA 的替代名称。

nAddress

指定本地 Exchange MTA 的主机名称或 IP 地址。

nAddressType

指示 nAddress 属性中的信息类型。地址信息可以是主机名称或 IP 地址。

name

指定传输堆栈对象的名称,该名称将显示在 Exchange 系统管理器中。

numOfOpenRetries

指定 Exchange MTA 在发送未送达报告 (NDR) 之前尝试打开连接的最大次数。

numOfTransferRetries

指定 Exchange MTA 尝试通过打开的连接传输邮件的最大次数。

objectClass

指示作为 x400Link 的目录对象的类。以下对象类是从该类派生的:

  • rFC1006X400Link:TCP/IP X.400 连接器
  • x25X400Link:X.25 X.400 连接器

openRetryInterval

指定出现错误之后、尝试重新打开连接之前系统等待的秒数。

pRMD

指定手动定义的全局域标识符的 PRMD 部分。

pSelector

指定堆栈的 OSI 地址信息中的 PSAP。

routingList

指定为该 X.400 连接器配置的地址空间。

rTSCheckpointSize

指定在插入检查点之前传输的数据量 (KB)。如果因出错而必须重新发送邮件,处理过程将从最近的检查点重新开始。值为零表示没有插入检查点。

rTSRecoveryTimeout

指定在断开的连接之后、在删除信息(及其检查点)和从头开始重新启动传输之前,MTA 等待重新连接的时间量。

rTSWindowSize

指定数据传输被挂起之前可以不经过确认的检查点数。如果检查点大小是零,则窗口大小没有意义。

sessionDisconnectTimer

指定在断开连接之前、在该连接上的所有关联被取消之后 Exchange MTA 所等待的时间量(秒)。

sSelector

指定堆栈的 OSI 地址信息中的 SSAP。

supportedApplicationContext

指定 OSI 应用程序(例如,Exchange MTA)所支持的应用程序上下文的对象标识符。

supportingStack

指定 MTA 用来通过该连接器进行通信的 MTA 传输堆栈的可分辨名称。

tempAssocThreshold

指定系统可以发送到远程系统的排队邮件的最大数目。超过该值后,MTA 将打开另一个关联。

transferRetryInterval

指定在邮件传输失败之后、在通过打开的连接重新发送邮件之前系统等待的秒数。

transferTimeoutNonUrgent

指定在为非紧急邮件发送未送达报告 (NDR) 之前系统等待的时间量(秒/KB)。

transferTimeoutNormal

指定在为正常邮件发送未送达报告 (NDR) 之前系统等待的时间量(秒/KB)。

transferTimeoutUrgent

指定在为紧急邮件发送未送达报告 (NDR) 之前系统等待的时间量(秒/KB)。

translationTableUsed

指定 MTA 用来对邮件文本进行编码的转换表。

transportExpeditedData

指定是否通过 X.400 连接器支持加急数据。加急数据将绕过流控制过程,并为加速紧急数据的传递(例如,突然的断开请求)提供方法。MTA 请求加急数据服务时,其他 MTA 必须同意在连接上使用它。否则,该功能不可用。

tSelector

指定堆栈的 OSI 地址信息中的 TSAP。

twoWayAlternateFacility

指定 MTA 关联是单向的,还是双向可替换的。

x400SelectorSyntax

指定 P、S 和 T 选择器的语法。(0 或未定义=十六进制,1=文本)

运行多个 X.400 连接器

在运行 Exchange Server 的单台服务器上可以安装的 X.400 连接器的最大数目是各不相同的,这取决于每个服务器的实际限制,例如硬件和网络带宽。但是,默认情况下,Exchange 2003 并没有针对有许多 X.400 连接器的情况进行优化,这是因为对于每个连接器类型(即 TCP/IP 和 X.25)来说,服务器所支持的最大并发连接数是 20。按每个连接器有十个关联计算,这是 TCP/IP 上的两个 X.400 连接器。如果在中心桥头服务器上配置 30 个或更多个 TCP/IP X.400 连接器,并且所有关联都正在使用,则应用程序事件日志中可能出现事件 ID 9156:

Event ID: 9156

Source: MSExchangeMTA

Type: Warning

Category: Resource

Description: A resource limit has been reached while attempting to open an association. There are no free control blocks available for network type 1. The configured count is 70. [BASE IL MAIN BASE 1 282] (10)

若要在桥头服务器上支持两个以上的 X.400 连接器,应当通过使用以下注册表参数增加控制块数。

位置

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\

MSExchangeMTA\Parameters

TCP/IP control blocks

TP4 control blocks

Eicon X.25 connections

类型

REG_DWORD

数值数据

0x14 (20)

描述

确定对 X.400 连接可用的最大缓冲区数。最好的做法是,如果超过了最大关联数,则为每个 X.400 连接器提供十个控制块,外加一个用于传入连接的控制块。例如,如果有 30 个 TCP/IP X.400 连接器,请将 TCP/IP 控制块设置为 0x12D (301) 以获得最大性能。

要处理 TCP/IP 层的通信负载,可能还必须通过以下注册表参数来增加 MTA 所使用的 TCP/IP 线程数。

位置

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\

MSExchangeMTA\Parameters

TCP/IP threads

类型

REG_DWORD

数值数据

0x2

描述

确定用于处理 RFC1006 连接的 MTA 线程数。

默认值为 0x2。由于 RFC1006 线程有两个子类型(驱动程序和异步通知),该数字要乘以 2。

Exchange MTA 可以使用的实际最大控制块数是 1,250,但该数字是从 TCP/IP、TP4 和 X.25 传输堆栈的控制块池取得的。所指示的注册表值分别对应于 TCP/IP 控制块、TP4 控制块和 X.25 控制块。默认情况下,所有这些值都设置为十进制数 20,所以,TCP/IP 控制块值可以增加到最多十进制数 1,210 而不会产生问题。这就允许在单个服务器上使用最多 121 个 TCP/IP X.400 连接器,每个连接器使用最大的可允许关联数。这个数字是理论上的。桥头服务器的容量可能限制实际的 X.400 连接器数。

以下情况几乎是不可能的:即每个 X.400 连接器都处理足够数量的邮件,以便要求每个连接器都达到最大关联数。此外,如果 X.25 传输堆栈不在使用中,则可以将 Eicon X.25 连接参数减少为零值,从而将 TCP/IP 堆栈的可用控制块数增加 20。但是,在 Exchange Server 2003 中不支持基于 TP4 的 X.400 连接器,并且减少 TP4 控制块不会为 TCP/IP 分配额外控制块。

如果将最大入池控制块数设置太高,则无法启动 Microsoft Exchange MTA Stacks 服务,并且会在应用程序事件日志中记录以下事件:

Event ID: 4300

Source: MSExchangeMTA

Type: ERROR

Category: Configuration

Unable to initialize due to a bad configuration. Contact Microsoft Technical Support. Error code=<variable> [1 POP4 MAIN BASE 1] (16)