Hi Apache teams, In my httpd module, I would like to increase the receive window (rwnd) size. For some mysterious reasons, if I set a value greater than 4 Mb, the rwnd stucks to 4193 Kb.
Here is my investigation states : * This is for upload (client uploads to httpd) * The correct TCP options are enabled on the server * I got another homemade app on the same server and the rwnd can go up to 8 Mb - so this exclude the server * The sizeof(int) is 4 bytes Ton increase receive window size, I do : int opt = 5000000; if (setsockopt(this->mSocket, SOL_SOCKET, SO_RCVBUF, &opt, sizeof(opt)) < 0) { throw invalid_argument(string(CLASSNAME) + " Could not set SO_RCVBUF option : " + string(strerror(errno))); } I can check the window size status using getsockopt, and values are correct at the beginning and at the end of the upload. In wireshark, I can see this : Frame 36818: 66 bytes on wire (528 bits), 66 bytes captured (528 bits) Ethernet II, Src: XXXXX, Dst: YYYYY Internet Protocol Version 4, Src: XXXXX, Dst: YYYYY Transmission Control Protocol, Src Port: 8443, Dst Port: 65168, Seq: 6136, Ack: 31241018, Len: 0 Source Port: 8443 Destination Port: 65168 [Stream index: 0] [TCP Segment Len: 0] Sequence number: 6136 (relative sequence number) [Next sequence number: 6136 (relative sequence number)] Acknowledgment number: 31241018 (relative ack number) 1000 .... = Header Length: 32 bytes (8) Flags: 0x010 (ACK) Window size value: 4095 [Calculated window size: 4193280] [Window size scaling factor: 1024] Checksum: 0x048c [unverified] [Checksum Status: Unverified] Urgent pointer: 0 Options: (12 bytes), No-Operation (NOP), No-Operation (NOP), Timestamps [SEQ/ACK analysis] [Timestamps] Does a specific mechanism in Apache cause this behaviour ? Thanks a lot for helping. Seb.