Re: Window size less than MSS

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Please be clear about the difference between _segments_ and _fragments_.

Berend De Schouwer wrote:
> In net/ipv4/tcp_output.c there is a chunk of code:
> 
>         /* Bound mss with half of window */
>         if (tp->max_window && mss_now > (tp->max_window>>1))
>                 mss_now = max((tp->max_window>>1), 68U - tp->tcp_header_len);
> 
> which means the first packet is half of 536, or 268 bytes.
> If I change it, I can connect.
> 
> Why /2?  Why not run:
> 
>         /* Bound mss with window */
>         if (tp->max_window && mss_now > (tp->max_window))
>                 mss_now = max((tp->max_window), 68U - tp->tcp_header_len);

Why do you want to make the MSS larger?

You said:

> The server doesn't reassemble fragments, so I need to send 311 bytes
> of data on a TCP stream, in one fragment.

Making the MSS smaller doesn't create any fragments.  It makes more
TCP segments, but does not create any IP fragments (which are pieces
of segments, when a segment is too large for an interface to transmit
as one IP packet).

Do you instead mean that the server doesn't reassemble _segments_?
Even when those segments are transmitted consecutively?

If that's true, it is a very limited TCP implementation indeed.

-- Jamie
-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux