所以我试图了解 OSI 模型中的应用层,当我访问 IANA 网站时,我注意到大多数众所周知的协议都为 TCP 和 UDP 分配了相同的端口。
例如,HTTP 是一个众所周知的协议,我知道它使用 TCP 端口 80,但 IANA 网站也列出了 UDP 上的端口 80。其他著名协议如 DNS、SMTP 等也是如此,
这是否意味着所有这些协议都使用 TCP 和 UDP?如果是这样,有人可以告诉我在什么情况下 HTTP 协议使用 TCP 和 UDP?
所以我试图了解 OSI 模型中的应用层,当我访问 IANA 网站时,我注意到大多数众所周知的协议都为 TCP 和 UDP 分配了相同的端口。
例如,HTTP 是一个众所周知的协议,我知道它使用 TCP 端口 80,但 IANA 网站也列出了 UDP 上的端口 80。其他著名协议如 DNS、SMTP 等也是如此,
这是否意味着所有这些协议都使用 TCP 和 UDP?如果是这样,有人可以告诉我在什么情况下 HTTP 协议使用 TCP 和 UDP?
已经注册了某个端口的 TCP 和 UDP 版本的协议这样做是因为它们至少在某些情况下同时使用两种传输协议,或者因为在某些时候有人提出了一个将使用另一个传输的协议添加,但可能是那个提议从未被广泛部署,但没有理由去取消注册另一个传输的端口。原因因协议而异。
HTTP 传统上使用端口 80/TCP,但现在 QUIC (HTTP/3) 使用 80/UDP(或 443/UDP)。
DNS 传统上使用 53/UDP,但在某些情况下会退回到 53/TCP,例如对于单个 UDP 数据包或“区域传输”的应答消息太大,其中一台 DNS 服务器下载所有 DNS 记录整个域,以便充当该域的辅助 DNS 服务器。通过使用基于 TCP 的 DNS(DoT)而不是基于 UDP 的 DTLS 来保护 DNS 也有一些兴趣。但是,似乎 DNS over HTTPS (DoH) 比 DoT 更受关注。