This is a static archive of our old Q&A Site. Please post any new questions and answers at ask.wireshark.org.

separate buffer for each clients

0

I have an application which runs on master PC and receives data from number of slave controllers in certain time interval.

I have run out of TCP_Rx_window buffer size quite often on my master PC when it receives the data from the controllers.

Also When I checked the Network traces using wireshark, TCP_Rx_Buffer size of Master PC always update it's window size with different value to each slave controllers.

But as I am using same port id for every slave controllers , I expect master PC to update with one window ( buffer).

So please explain me , why do I have multiple window on my TCP_Rx_Buffer of master PC.

asked 05 Jan '16, 01:54

Tony_2013's gravatar image

Tony_2013
11559
accept rate: 0%

edited 05 Jan '16, 07:44

Bill%20Meier's gravatar image

Bill Meier ♦♦
3.2k1850


One Answer:

0

The TCP receive window is kept per TCP connection. A connection is defined by the two sockets it uses, in your case slave_ip:slave_port <-> master_ip:master_port. So even if the ports are the same, the IPs are different, which means you have one connection per slave. And that means, you've got one receive window per slave.

If you run out of receive window, your master PC is too weak to deal with the incoming data. You can either upgrade the hardware (if possible), or you need to scale your design, e.g. by using more than one master PCs and distribute the connections over all of them.

answered 05 Jan '16, 02:58

Jasper's gravatar image

Jasper ♦♦
23.8k551284
accept rate: 18%

Thanks Jasper!!!

(05 Jan '16, 06:51) Tony_2013