First time here? Check out the FAQ!
THIS IS A TEST INSTANCE. Feel free to ask and answer questions, but take care to avoid triggering too many notifications.
0

TCP window size value

  • retag add tags

Hello,

I was facing a problem where a client's server has a small window size value of 65535 and in the option field, it has only a multiplier of 4 (windows scale of 2). Is this calculated window value 262,140 bytes, or TCP window buffer size is shared among multiple users connecting the server, or its just for that particular session?

I want to know what this value is and how it is used when multiple clients connect to this server.

Note: i can provide the PCAP file if necessary.

need help

thank you!

Regards, Rajesh Shrestha

Rajessh's avatar
5
Rajessh
asked 2023-05-09 07:08:44 +0000
Jaap's avatar
13.7k
Jaap
updated 2023-05-09 08:27:35 +0000
edit flag offensive 0 remove flag close merge delete

Comments

add a comment see more comments

1 Answer

0

TCP Windows scaling is a setting per TCP connection. Thus not shared, but multiple TCP connections can of course have the same setting.

Scaling is only used if both sides uses that option in the SYN segment. See RFC 7323 Window Scale Option

Assuming that is the case, the memory allocated for that connection is 64K * 4 for the send and receive window in your example.

André's avatar
176
André
answered 2023-05-11 20:24:25 +0000, updated 2023-05-11 20:25:27 +0000
edit flag offensive 0 remove flag delete link

Comments

Hi Andre,

Thank you for your response, regarding the windows scaling.

i have a question regarding the memory allocation:

let's say suppose a server has an overall 4GB RAM allocated to it, and for example, if there are 100 simultaneous users connecting to the same server allocating the resource 64K*4 = 256KB of memory space for each. Does it mean that the Overall RAM used by the 100 clients is equal to 25600KB = 25MB?

sorry, but I am a noob on this analysis.

Regards, Rajesh Shrestha

Rajessh's avatar Rajessh (2023-05-12 04:58:48 +0000) edit

Normally yes, but...
For example Windows sets the windows scale to 4 Mbyte, but only allocates that amount of memory when it actually needed. Starting with an initial lower value.
So the actual memory usage depends on how it is implemented on that OS.

And you need 2 buffers, one for receiving and one for sending; to hold un-ack-ed segments or to facilitate (fast) retransmissions.

André's avatar André (2023-05-12 06:31:13 +0000) edit
add a comment see more comments

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account. This space is reserved only for answers. If you would like to engage in a discussion, please instead post a comment under the question or an answer that you would like to discuss.

Add Answer