Re: [tcpm] Extending RFC 1323 window scaling?

Mark Allman <mallman@icir.org> Fri, 06 April 2007 21:16 UTC

Return-path: <tcpm-bounces@ietf.org>
Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com) by megatron.ietf.org with esmtp (Exim 4.43) id 1HZvnU-0001a5-1F; Fri, 06 Apr 2007 17:16:40 -0400
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1HZvnS-0001Vw-2t; Fri, 06 Apr 2007 17:16:38 -0400
Received: from pork.icsi.berkeley.edu ([192.150.186.19]) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1HZvnO-00055k-Mc; Fri, 06 Apr 2007 17:16:38 -0400
Received: from guns.icir.org (adsl-69-222-35-58.dsl.bcvloh.ameritech.net [69.222.35.58]) by pork.ICSI.Berkeley.EDU (8.12.11.20060308/8.12.11) with ESMTP id l36LGXoB022390; Fri, 6 Apr 2007 14:16:33 -0700
Received: from lawyers.icir.org (adsl-69-222-35-58.dsl.bcvloh.ameritech.net [69.222.35.58]) by guns.icir.org (Postfix) with ESMTP id D887B9A08EB; Fri, 6 Apr 2007 17:16:27 -0400 (EDT)
Received: from lawyers.icir.org (localhost [127.0.0.1]) by lawyers.icir.org (Postfix) with ESMTP id DF8781C8DBC; Fri, 6 Apr 2007 17:16:24 -0400 (EDT)
To: Michael Scharf <michael.scharf@ikr.uni-stuttgart.de>
From: Mark Allman <mallman@icir.org>
Subject: Re: [tcpm] Extending RFC 1323 window scaling?
In-Reply-To: <20070331111615.GA29580@ikr.uni-stuttgart.de>
Organization: ICSI Center for Internet Research (ICIR)
Song-of-the-Day: Play Guitar
MIME-Version: 1.0
Date: Fri, 06 Apr 2007 17:16:24 -0400
Message-Id: <20070406211624.DF8781C8DBC@lawyers.icir.org>
X-Spam-Score: 0.1 (/)
X-Scan-Signature: f607d15ccc2bc4eaf3ade8ffa8af02a0
Cc: tcpm@ietf.org, tsvwg@ietf.org
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
Reply-To: mallman@icir.org
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1271960261=="
Errors-To: tcpm-bounces@ietf.org

>   (1) The semantics of the SEG.WND field in the TCP header could be
>       changed, i. e., the receive window is scaled in <SYN,ACK>
>       segments under some constraints. Whether or not the receive
>       window is scaled could be announced explicitly by a flag, or
>       implicitly, e. g., due to the presence of Quick-Start options or
>       other options. However, changing the semantics of the receive
>       window header field creates interoperation issues with hosts
>       that do not implement such a modification.
> 
>   (2) The true amount of free buffer space is announced somehow, and
>       overwrites the (unscaled) value in the TCP header, which remains
>       unscaled in order to be compatible with hosts that do not
>       implement this mechanism. This requires some new mechanism to
>       signal a scaled receive window in <SYN,ACK> segments.
> 
> The proposed new TCP option is a straightforward realization of
> approach (2).

I am not sure if we need a (2).  As you note, Quick-Start is currently
the only thing that really runs into a problem and maybe something else
could.  To be precise, I think we can say that the only place where this
is a problem is when the initiator of a connection wants to (and can)
send more than 64KB in the first RTT of the connection.  Unless we
pretty drastically change the rules it seems that this is going to have
to be done only with some explicit communication and so using that as an
implicit signal seems fine to me.  (We clearly botched this in terms of
Quick-Start because we were too dumb to think of it and you found it
after publication.)  Further, it is not clear that we need to add new
functionality like this for something experimental (Quick-Start).  But,
maybe ...

If I were going to take approach (2) I would suggest a two-byte option
that indicates the value in the standard TCP header is to be scaled.
Why add another 2 byte window value when one of them is going to be
ignored?  This fails safe because if a host doesn't understand the new
("the window is scaled") option it will think the advertised window is
unscaled and so less than it really is and so there is no danger in
running into problems.

allman



_______________________________________________
tcpm mailing list
tcpm@ietf.org
https://www1.ietf.org/mailman/listinfo/tcpm