在storm的例子中,它说“每个工作进程使用一个端口来接收消息,这个设置定义了哪些端口可以打开以供使用”,这意味着我可以将插槽号设置为大于65536的数字,以便服务器机器可以打开超过65536个进程,并且每个进程都侦听一个唯一的端口?不是一次有多少个tcp连接,我知道tcp连接可以超过65536个。那么一台服务器机器打开超过65536个进程并监听超过65536个端口会发生什么呢?
tcbh2hod1#
当进程侦听tcp端口时,它不仅仅侦听端口号。它监听端口号和ip地址的组合。通配符ip地址可用于指示监听所有ip地址。对于本地连接,您可以将ip地址(如127.0.0.2或127.1.0.1)与各种端口号结合使用,以超过65536个本地端口。您可以有超过65536个这样的端口,它的作品很好。但是,127.0.0.0/8中的ip地址无法从其他机器访问,因此它只是本地的。要拥有一个可以通过网络接受入站连接的端口,必须将其绑定到一个ip地址的组合,该ip地址可以通过tcp端口号通过该网络访问。因此,只有一个网络地址的机器只能有65535个不同的端口,传入的tcp连接可以连接到这些端口。但是如果您使用的软件允许您指定要绑定到的ip地址,那么您可以通过向计算机分配额外的网络ip地址来超越此限制(如果没有,你可以很容易地破解它以允许这样做。)
1条答案
按热度按时间tcbh2hod1#
当进程侦听tcp端口时,它不仅仅侦听端口号。它监听端口号和ip地址的组合。通配符ip地址可用于指示监听所有ip地址。
对于本地连接,您可以将ip地址(如127.0.0.2或127.1.0.1)与各种端口号结合使用,以超过65536个本地端口。您可以有超过65536个这样的端口,它的作品很好。但是,127.0.0.0/8中的ip地址无法从其他机器访问,因此它只是本地的。
要拥有一个可以通过网络接受入站连接的端口,必须将其绑定到一个ip地址的组合,该ip地址可以通过tcp端口号通过该网络访问。因此,只有一个网络地址的机器只能有65535个不同的端口,传入的tcp连接可以连接到这些端口。但是如果您使用的软件允许您指定要绑定到的ip地址,那么您可以通过向计算机分配额外的网络ip地址来超越此限制(如果没有,你可以很容易地破解它以允许这样做。)