【问题标题】:Is SMTP based on TCP or UDP?SMTP 是基于 TCP 还是 UDP?
【发布时间】:2018-05-28 10:12:45
【问题描述】:

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

【问题讨论】:

标签: tcp smtp udp network-protocols


【解决方案1】:

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

RFC 821RFC 2821RFC 5321 中所定义:

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

此外,Internet 号码分配机构已为 TCP 和 UDP 分配了port 25,供 SMTP 使用。

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


TCP 和 UDP 之间使 TCP 成为理想的最大区别在于 TCP 检查以确保每个数据包都被接收并在没有接收到时重新发送它们,而 UDP 只会发送数据包而不检查接收。这使得 UDP 非常适合流式传输视频之类的应用,其中每个数据包都没有保持从服务器到客户端的连续数据包流重要。

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

【讨论】:

  • UDP 不是可靠的有序数据流通道。 SMTP 运行的此类通道的一个示例是 TLS。也许有一天 SMTP 可以扩展到 SCTP 或 MBTCP——这还没有出现。
【解决方案2】:

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

【讨论】:

  • SNMP 不是 SMTP
  • @GambitSupport 这是一个错字(我正在处理 SNMP 和 SMTP,所以混合它们很正常)! RFC 指的是 SMTP,而不是 SNMP,所以答案仍然有效。
猜你喜欢
  • 2010-10-26
  • 2011-08-20
  • 2013-09-24
  • 2015-03-08
  • 1970-01-01
  • 1970-01-01
  • 2012-06-20
  • 2014-12-07
  • 2010-12-10
相关资源
最近更新 更多