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

Tcp IANA(端口号注册表)保存在哪里?,tcp,iana,Tcp,Iana,我想知道我在哪里可以访问IANA注册表 它是在操作系统中实现的吗 应用程序如何知道要连接到哪个端口,确切地说是在哪里比较端口号 有些应用程序的端口号是硬编码的,有些应用程序的端口号是您输入的,但具体在哪里进行比较 或者这一切都是基于人的吗?开发人员知道他们将连接到http服务器时,是否使用端口80 我无法理解这一点,因为有一些众所周知的端口,你不能将其用于你的应用程序。或者你能吗?当没有进程绑定端口时,端口是否可以自由使用?所以我可以使用端口80、25、443或1000以下的任何端口,我所需要的

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

它是在操作系统中实现的吗

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

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

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


我无法理解这一点,因为有一些众所周知的端口,你不能将其用于你的应用程序。或者你能吗?当没有进程绑定端口时,端口是否可以自由使用?所以我可以使用端口80、25、443或1000以下的任何端口,我所需要的就是根权限?

这里有两个大问题。首先,伊安娜在哪里。答案很简单:

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

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

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

这里还有一个关于使用端口权限的问题。首先,如果你使用的是Windows,那么就没有这样的概念。在其他操作系统(UNIX、VM等)上可以找到“特权”端口的概念。在这些系统上,您需要是root或与之相当的操作符。这适用于小于1024而不是1000的端口


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

这里有两个大问题。首先,伊安娜在哪里。答案很简单:

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

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

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

这里还有一个关于使用端口权限的问题。首先,如果你使用的是Windows,那么就没有这样的概念。在其他操作系统(UNIX、VM等)上可以找到“特权”端口的概念。在这些系统上,您需要是root或与之相当的操作符。这适用于小于1024而不是1000的端口


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

nc-tl 1023
nc:Permission denied——它小于1024应该小于
nc-tl 1023
nc:Permission denied——它小于1024应该小于1024