我想知道在TCP连接建立时,是否为每个大小为2 ^ 16字节的单独缓冲区分配了单独的TCP连接以分离服务器?
答案 0 :(得分:0)
是和否。肯定有两个缓冲区,发送和接收,但大小取决于平台,可以由应用程序修改。
答案 1 :(得分:0)
是的,为发送和接收分配了单独的缓冲区。最初保留的内存量取决于default-configuration,如果应用程序使用set_sockopt()选择不同的大小。随着传出/传入数据包数量的增加,初始保留内存也会增加。
在Linux上,可以使用foll sysctls读取/修改默认值。
net.ipv4.tcp_mem = 191133 254845 16777216
net.ipv4.tcp_rmem = 4096 16384 777216
net.ipv4.tcp_wmem = 4096 16384 16777216
您可以将setsockopt()与SO_SNDBUF和SO_RCVBUF一起使用,以便从应用程序中修改它。