我想知道我在哪里可以访问IANA注册表?
是否在操作系统中实现?
应用程序如何知道要连接的端口,确切地说比较端口号的位置?
有些应用程序的端口号是硬编码的,有些是您输入的,但是比较完全在哪里?
或者它是否都是以人为本的,当开发人员知道他们将连接到http服务器时是否使用端口80?
我无法理解这一点,因为有众所周知的端口,您无法将其用于您的应用。或者你呢?当没有进程绑定它时,端口是否可以自由使用?所以我可以使用端口80,25,443或1000以下的任何东西,我需要的只是root权限?
答案 0 :(得分:4)
你真的有两个大问题。首先,IANA在哪里。答案很简单:http://iana.org
但我认为你真正要问的是你的其他帖子。您在系统上查找的文件是services
文件。这通常在UNIX样式系统上/etc/services
,但您可以在Windows系统上的C:\Windows\System32\drivers\etc
中找到它。
这个文件真的是一个映射文件,允许你按名称请求服务(比如说" telnet",例如)并让系统将它转换为端口数(23)。
最好的做法是编写软件以使用名称(如果可能),而不是数字。这不仅允许“#34;众所周知的端口”的概念。要应用,但如果你有一个不寻常的情况需要在其他端口上运行服务,只需修改services
文件就可以轻松地重新映射服务。
您还有另一个关于使用端口的权限的问题。首先,如果你正在使用Windows,那么真的没有这样的想法。 "特权"的想法ports位于其他操作系统(UNIX,VMS等)上。在这些系统上,您需要是root或OPERATOR等效的。这适用于小于1024而不是1000的端口。
也就是说,端口80真的没什么特别的,除了那个人希望在那里找到一个Web服务器。