37

SMTP 是基于 TCP 还是 UDP?我真的无法确认。在我看来,SMTP应该是基于UDP的,但是有人告诉我那一定是TCP。

4

2 回答 2

49

理论上,SMTP 可以由 TCP、UDP 或某些第 3 方协议处理。

RFC 821RFC 2821RFC 5321中所定义:

SMTP 独立于特定的传输子系统,只需要一个可靠的有序数据流通道。

此外,Internet Assigned Numbers Authority 已为 TCP 和 UDP 分配端口 25以供 SMTP 使用。

然而,在实践中,大多数(如果不是全部)组织和应用程序只选择实现 TCP 协议。例如,在Microsoft 的端口列表中,端口 25 仅针对 TCP 而不是 UDP 列出。


TCP 和 UDP 之间使 TCP 理想化的最大区别在于 TCP 检查以确保每个数据包都被接收并在没有收到时重新发送它们,而 UDP 将简单地发送数据包而不检查接收。这使得 UDP 非常适合像流视频这样的事情,在这种情况下,每个数据包都不像保持从服务器到客户端的连续数据包流那么重要。

考虑到 SMTP,使用 TCP over UDP 更有意义。SMTP 是一种邮件传输协议,在邮件中每个单独的数据包都很重要。如果您在消息中间丢失了多个数据包,则收件人甚至可能不会收到该消息,如果他们收到了,他们可能会丢失关键信息。这使得 TCP 更合适,因为它确保每个数据包都被传递。

于 2013-09-16T17:23:10.723 回答
-2

似乎 SMTP 作为 Internet 标准仅使用可靠的传输协议。RFC821有TCP、NCP、NITS作为例子!

于 2018-04-19T18:41:01.830 回答