linux机箱可以同时打开多少个传出套接字
我想知道在IPv4和IPv6中,linux机箱可以为TCP、UDP和ICMP通信同时打开多少个套接字。虽然有一些关于处理传入(主要是TCP)连接的回复,但我没有看到关于传出的明确声明 我的理解如下:linux机箱可以同时打开多少个传出套接字,linux,tcp,udp,icmp,Linux,Tcp,Udp,Icmp,我想知道在IPv4和IPv6中,linux机箱可以为TCP、UDP和ICMP通信同时打开多少个套接字。虽然有一些关于处理传入(主要是TCP)连接的回复,但我没有看到关于传出的明确声明 我的理解如下: TCP:由于TCP是基于端口的,因此只能打开与临时端口数量相等的套接字,而在我的框中是 cat /proc/sys/net/ipv4/ip_local_port_range 32768 60999 # == 28231 如果我想增加这个数量(而不改变上面的配置),我需要创建额外的接口,每个接口
- TCP:由于TCP是基于端口的,因此只能打开与临时端口数量相等的套接字,而在我的框中是
如果我想增加这个数量(而不改变上面的配置),我需要创建额外的接口,每个接口将获得大约28K个额外的连接,对吗 这里是否需要考虑每个系统过程 我可以看到,使用额外的(虚拟)接口和公共IP,但如果我在虚拟接口上定义私有IP,并通过唯一的公共IP对它们进行NAT,这仍然有效吗cat /proc/sys/net/ipv4/ip_local_port_range 32768 60999 # == 28231
- UDP:我相信UDP也使用端口。如果我同时拥有UDP和TCP流量,两者都会争夺28K端口,对吗
- ICPM:ICMP不是基于端口的,那么开放(原始)套接字的数量限制是多少?是否取自打开的FD池的最大数量:
cat /proc/sys/fs/file-max 9223372036854775807
- IPv6:以上所有内容都与IPv4相关,但IPv4和IPv6在这方面有什么区别
发送到
任意对等方,也可以从
接收来自任意对等方的数据包,即每个发送或接收的数据包对于对等方来说都是唯一的。在这种情况下,套接字的数量受到端口数量的限制,因为每个未连接的套接字需要(通常,请参见SO_REUSEPORT了解例外情况)具有唯一的源ip和源端口。但另一方面,这些套接字更灵活,因为单个套接字可用于与任意对等方通信
。。。打开(原始)插槽的数量限制是多少
没有固有的限制。但是太多的原始套接字会让它变得混乱,因为所有传入的数据都会传递到所有原始套接字
IPv6:以上所有内容都与IPv4相关,但IPv4和IPv6在这方面有什么区别
没有区别
除了这些限制之外,当然还有其他限制,比如每个进程打开的文件描述符的数量,文件描述符的总数。但是这些限制是可以调整的,并且大部分都受到可用内存量的严格限制。Hi。(…)还有其他限制吗,比如每个进程打开的文件描述符的数量,(…)这意味着如果我有一个进程打开很多很多套接字,那么限制大约是65K?@mszmurlo:“…限制大约是65K…”-不,为什么要这样做?我可能是混合了一些东西,但是套接字不是文件描述符吗?每个进程的文件描述符数量是否限制在0xFFFF(~65K)?@mszmurlo:“但是套接字不是文件描述符吗”-是的。“每个进程的文件描述符数量不限于0xFFFF吗”-我不这么认为。为什么您认为应该是这种情况?我不知道为什么,但我认为每个进程的最大打开FD数限制为65K。谢谢你抽出时间。