Почему размер буфера для чтения минимум устанавливается как 2304 (Ubuntu 16. 18 проверял)? Можно ли его сделать менее чем 2304?
Попробовал установить лимиты:
$ sudo sysctl -w net.core.wmem_max=65536 # менее не пускает
net.core.wmem_max = 65536
$ sudo sysctl -w net.core.rmem_max=65536 # менее не пускает
net.core.rmem_max = 65536
$ sudo sysctl -w net.ipv4.tcp_rmem="2 4 8"
net.ipv4.tcp_rmem = 2 4 8
$ sudo sysctl -w net.ipv4.tcp_wmem="2 4 8"
net.ipv4.tcp_wmem = 2 4 8
Далее создать сокет и повлиять на размер буфера для чтения
my_socket = socket.socket( socket.AF_INET,socket.SOCK_STREAM)
my_socket.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 8)
При этом размер реально установленного буфера всегда не превышает 2304 (больше можно сделать):
print(my_socket.getsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF))
# печатает 2304