如果两个不同的应用程序使用不同的协议,它们可以绑定主机上的同一端口吗?

如果两个不同的应用程序使用不同的协议,它们可以绑定主机上的同一端口吗?

 我认为我的问题很清楚。如果两个应用程序使用不同的传输层协议(例如 TCP 和 UDP 或其他协议),它们可以打开相同的端口号吗?

如果是这样的话,操作系统如何进行多路复用?

操作系统网络堆栈中可以有多少种传输协议?如果不同协议的数量是无限的,这是否意味着计算机基本上可以有无限的开放端口进行通信?

答案1

是的,TCP 端口和 UDP 端口是完全独立的端口集,即使它们都是 UInt16 并且管理方式类似。

您可以创建自己的传输协议,并为其指定任意数量的位作为传输的端口号,这样端口号就永远不会用完。您还可以创建大约 256 个传输协议(尽管有些已经被占用),并为所有协议定义巨大的整数作为端口号变量。

相关内容