HTTPS 使用 TCP 还是 UDP?

Ste*_*ven 46 ssl https tcp udp tls

HTTPS 使用 TCP 还是 UDP?

And*_*gor 42

HTTPS 可以运行在任何可靠的流传输协议上。通常是 TCP,但也可以是 SCTP。预计它不会在 UDP 上运行,这是一种不可靠的数据报协议(事实上,虽然这不是它的正式名称,但这是记住它的好方法)。

IANA 对 UDP 的分配是历史性的;当时,几乎每个协议都被分配了 TCP 和 UDP 端口号,即使预计它只会使用一个。一直在讨论合并端口号注册表,从现在开始只将一个端口分配给一个协议。这是为了更容易部署未来的传输协议,否则这些协议将需要自己的注册表。我不知道讨论是如何结束的。

  • 警告:此答案已过时(9 年前)。看一下关于QUIC协议的答案,这是谷歌用于Chrome的实现。就是说。 (3认同)

syb*_*eon 33

它使用 TCP。如果不能保证数据包到达,就很难在 UDP 上运行它。如果数据包没有到达,加密的数据将无法破译。

  • 或者,如果数据包无序到达,因为 UDP 不包含像 TCP 那样重新排序数据包的规定。 (4认同)
  • 不会-1 你,因为它有点迂腐,但值得注意的是,它没有理由不能通过 UDP 运行。这可能是非典型的,但这是可能的。 (3认同)

小智 12

下一次,如果您想知道默认端口服务是在 tcp 还是 udp 上运行,您可以查看 Linux 机器上的 /etc/services。

  • 或者 Windows 机器,在命令提示符下:`find "https" %windir%\system32\drivers\etc\services` (3认同)

小智 9

如今,HTTPS 可以在 TCP 或 UDP 之上运行。

新的“QUIC”协议旨在用一个多路复用的 UDP 连接替换多个 TCP 连接,因此可以处理 SSL 和 HTTPS:

HTTPS → SSL → QUIC 流 → UDP → IP

QUIC 最初由 Google 于 2012 年开发,目前正在接受 IETF 审查。有关更多详细信息,请参阅维基百科。

  • +1,没想到在点击这个问题时学到了一些东西。 (2认同)

peh*_*hrs 7

OSI 模型允许高层协议运行在任何提供正确服务的底层协议上。HTTPS 是使用 SSL/TLS 安全性的 HTTP。SSL/TLS通常在 TCP 之上运行,但没有什么可以阻止您在 UDP、SCTP 或任何其他传输层协议上运行它。

事实上,基于 TCP 和 UDP 的 HTTPS 都被 IANA 定义为“众所周知”,并保留了端口号。

有关“官方”端口/协议组合,请参阅http://www.iana.org/assignments/port-numbers