尽管此问题已被标记为已回答,但我想解决OP中提出的一些其他问题。
这些端口是物理对象吗?
没有端口不是物理对象。
端口号是一个16位无符号整数,表示可用的端口范围是1到65535(端口号0是保留的,不能使用)。进程将其通过Internet套接字的输入或输出通道,文件描述符的类型与传输协议,端口号和IP地址相关联。此过程称为绑定,可通过网络发送和接收数据。
它们是否在我的计算机中内置?它们甚至是物理物质吗?还是用代码编写?该代码在哪里?操作系统?港口到底是什么?
操作系统的网络软件的任务是将所有应用程序端口的传出数据传输到网络上,并通过匹配数据包的IP地址和端口号将到达的网络数据包转发到进程。
使用相同的传输协议,只有一个进程可以绑定到特定的IP地址和端口组合。当多个程序尝试使用同一协议绑定到同一IP地址上的相同端口号时,就会发生常见的应用程序故障,有时也称为端口冲突。
上一段是理解为什么在网络中使用端口/协议的关键。如果我们没有办法指定协议,该协议通过约定的apon端口号传输数据-您一次只能做一件事情(检查您的电子邮件并使用网络),因为您的计算机会无法区分电子邮件客户端的数据和浏览的网站的数据。
有几个端口?
根据三个范围,以各种方式分配端口号:
众所周知/系统端口(0-1023)-此范围的端口由提供广泛使用的网络服务类型(HTTP / 80,HTTPS / 443,Telnet / 21,SSH / 22)的系统进程使用
注册/用户端口(1024-49151)-从1024到49151的端口号范围是注册端口。IANA会根据请求实体的申请将其分配给特定服务。(Webmin / 10000,HTTP Proxy / 8080,远程桌面协议/ 3389等)
临时/动态/专用端口(49152-65535)-49152-65535范围包含无法向IANA注册的动态或专用端口。此范围用于自定义或临时目的以及临时端口的自动分配。
我可以增加或减少端口数量吗?
关于能够增加可用端口的数量,由于数学运算允许网络工作(二进制),因此您无法分配大于65535的端口-因此,此问题的答案为否,您无法增加可用端口的总数65535以上的端口。
什么是协议?
在计算机科学中,通信协议是一种用于在计算机内部或计算机之间进行消息交换的数字规则系统。通过计算机网络交换消息时,规则系统称为网络协议。协议基本上是两个联网设备都可以通过其通信的一组指令/命令/调用。想想我们是否未达成协议,Web服务器只是将数据随机发送到Web浏览器,而该浏览器不知道如何处理?幸运的是,我们拥有HTTP,并且该软件内置了每个HTTP创建的Web浏览器,因此它可以与任何使用相同语言(HTTP)的Web服务器进行通信。
我以为它们是某种代码。。。您可以创建自己的协议吗?您使用什么语言创建协议?
是的,您可以创建自己的协议。协议以多种语言编写。我不是软件开发人员,但是我很确定只要您使用的任何语言都具有允许您编写可以通过TCP / IP进行通信的软件的库(还有其他协议套件,但TCP / IP最多)广泛使用),您可以使用该语言编写协议。编程语言“ C”似乎是编写协议最常用的语言。这是由于许多最早的网络协议都是在1970年代在UNIX上开发的,而C恰好是UNIX本身所使用的语言。
如何获得特定端口以运行特定协议?
操作系统之间的差异很大。例如,要更改远程桌面协议在Windows上运行的端口号,您需要编辑注册表。在Linux上,可以直接从.conf文件为特定的网络服务配置许多网络服务。
您如何定义或发明新协议?
参见https://journal.paul.querna.org/articles/2012/02/22/designing-network-protocols/,以获取最近开发了一种新的网络协议的人的博客文章以及他必须要做的事情一路上。