gpt4 book ai didi

tcp - IANA(端口号注册表)保存在哪里?

转载 作者:可可西里 更新时间:2023-11-01 02:45:18 26 4
gpt4 key购买 nike

我想知道在哪里可以访问 IANA 注册表?

是否在操作系统中实现?

应用程序如何知道要连接到哪个端口,确切地说是在何处比较端口号?

有些应用程序的端口号是硬编码的,有些是您输入的,但是比较的具体位置在哪里?

还是这一切都是基于人为的,当开发人员知道他们将连接到 http 服务器时,他们是否会使用端口 80?

我无法理解这个问题,因为有一些众所周知的端口,您不能将其用于您的应用程序。或者你可以吗?当没有进程绑定(bind)时,该端口是否可以免费使用?所以我可以使用端口 80、25、443 或任何低于 1000 的端口,为此我只需要 root 权限?

最佳答案

您在这里确实有两个大问题。首先,IANA 在哪里。答案很简单:http://iana.org

但我认为您真正要问的是您帖子的其余部分。您在系统上查找的文件是 services 文件。在 UNIX 风格的系统上,这通常位于 /etc/services 中,但在 Windows 系统上,您可以在 C:\Windows\System32\drivers\etc 中找到它。

这个文件实际上是一个映射文件,允许您通过名称请求服务(例如,“telnet”)并让系统将其转换为端口号 (23)。

编写软件时最好尽可能使用名称而不是数字。这不仅允许应用“知名端口”的概念,而且如果您遇到服务需要在其他端口上运行的异常情况,只需修改 services 文件即可易于重新映射的服务。

您在这里还有一个关于使用端口的权限的问题。首先,如果您使用的是 Windows,则实际上没有这样的概念。 “特权”端口的概念在其他操作系统(UNIX、VMS 等)上也有。在那些系统上,您需要是 root 或 OPERATOR 等价物。这适用于小于 1024 的端口,而不是 1000。

也就是说,端口 80 确实没有什么特别之处,只是人们希望在那里找到一个 Web 服务器。

关于tcp - IANA(端口号注册表)保存在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30421898/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com