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

Maximum segment size NULL for TCP congestion window prediction

0

I am using the formula you see on the attached paper (link: https://drive.google.com/file/d/0B4Ajk8jGD1OxWnORG9iMG0xSEFudWcXd3X2p1Yy1FNkJr/view ) to predict a congestion window (cwnd). However, I am confused with the value of the MSS (maximum segment size) on the segments where the MSS is NULL. I am using iperf to generate the traffic (sending from a client to a server and capture the traffic on the edge of the network). What is causing for the value of MSS to be NULL?

Link to the full paper: https://drive.google.com/open?id=0BAjk8jGDxOVNRTGpNUVdyVnZsaGZ6ZzdOc2NUdWZELW13

The formula they have used in the paper is on the second column of page 2. Or is there any other formula to predict cwnd from a passive traffic?

asked 15 Feb '17, 15:32

armodes's gravatar image

armodes
16181923
accept rate: 0%

edited 26 Feb '17, 06:50


One Answer:

3

The MSS is a TCP option. The MSS is negotiated early in a connection, so the MSS option only appears in a few packets. The other packets don't include any MSS information.

If you need the MSS to analyze a connection, you will have to capture the initial setup of the connection, and remember the MSS value in the setup. If you don't capture the setup, you will not know the MSS.

answered 15 Feb '17, 16:56

Guy%20Harris's gravatar image

Guy Harris ♦♦
17.4k335196
accept rate: 19%

What do you mean by "you will have to capture the initial setup of the connection, and remember the MSS value in the setup."? How do we do that on Wireshark?

(15 Feb '17, 17:09) armodes
1

To capture the initial setup of the connection, you will have to make sure Wireshark is doing a capture before iperf makes the connection. That's already being done.

To remember the MSS, you'll have to have whatever software is doing the analysis construct some data structure for each connection it sees and, if it sees an MSS option, attach that MSS value to the data structure. I.e., yes, you will have to write code.

(15 Feb '17, 17:13) Guy Harris ♦♦

aha, OK i will do that. But the value of MSS should be 1460 all the time right? Does it have an impact on the ACK, sequence number and time stamp values?

(15 Feb '17, 17:17) armodes
1

But the value of MSS should be 1460 all the time right?

Yes, once it's negotiated, it doesn't normally change. That doesn't mean that every packet will have an MSS option - the very fact that it doesn't change means that the MSS option isn't necessary once it's negotiated.

Does it have an impact on the ACK, sequence number and time stamp values?

No, except to the extent that it affects how big a TCP segment can be set and thus how much the sequence number (and thus the acknowledgment number) changes from packet to packet.

(15 Feb '17, 17:22) Guy Harris ♦♦
(15 Feb '17, 22:46) Christian_R