我遇到过以下注册端口的定义,
- 注册端口 1024-49151 可在 IANA 注册以用于更常见的目的,因为它们可供普通用户绑定。
- 注册是为了避免端口冲突(无论如何都会发生,因为不是每个人都认为注册是值得的)
根据上述定义,我有一些问题需要澄清
在 IANA 注册到底是什么?以及如何在 IANA 注册端口?
将注册端口用于客户端自己的目的是否是一种好的做法?如果不是,为什么?
如果第二个问题的答案是否定的,那么为什么动态端口 [ 49,592 - 65,535 ] 只能用于客户端而不是注册端口?
答案1
问:IANA 注册到底是什么?
A: 互联网号码分配机构负责协调一些使互联网平稳运行的关键要素,包括提供“服务名称”列表(用于 FTP、HTTP 等协议)以及它们将运行的端口。如果没有 IANA,混乱就会随之而来。
问:如何向 IANA 注册端口?
A: https://www.iana.org/form/ports-services
问: 将注册端口用于客户端自己的目的是一种好的做法吗?如果不是,那为什么呢?
A: 不,不是为客户自己的目的。我怀疑 IANA 无论如何都会给你一个端口,除非有充分的理由。通常,端口注册存在于旨在用于封闭系统之外的协议中,在封闭系统中可能有很多人(我的意思是很多人)使用它。你只需要选择一个通常未分配的端口并继续(或者更好的是,询问你友好的邻居 IT 专业人员要使用哪个端口)。请注意,端口应该绝不硬编码。您将束缚管理员的手脚,他们可能需要处理这些事情。这就是注册不必要的原因。即使您确实获得了注册的端口号,这也只是一个建议。例如,HTTP Web 服务器不必位于端口 80 上。
问:为什么动态端口 [ 49,592 - 65,535 ] 仅可用于客户端,而不可用于注册端口?
A:除非您对网络端口有了更好的理解,否则您不应该认为这些端口可用。大多数服务和网络应用程序不会直接处理这些端口。这些端口通常称为临时端口操作系统和应用程序需要它们来分配临时(或私有)端口以返回流量。只有高级程序员和操作系统本身才应该直接使用它们。当你需要使用一个时,你就会知道它。把它们想象成“随机和临时的”。
TCP/IP 和网络通常相当复杂,我只是触及了您的问题的表面,但这是它的基本要点。 我说的一些话可能是错误的(为了简化)但足够接近,以便您能够理解。
我建议你考虑一下我上面所说的内容,并阅读这些内容:
对某些人来说,这就是宗教,所以我对任何讨厌我的人说……如果我犯了错误,只要告诉我,我就会改正(或者你自己改正)。欢迎提出建议 :)