"Reimer, Fred"  wrote,
>A "window" is not a thing that gets sent in a TCP session.  You don't send
>"windows."

A window is the amount of unacknowledged data the sender is allowed 
to have outstanding to the receiver. It isn't necessarily identical 
to the receive buffer; the receiver may choose to signal a smaller 
window for reasons of flow control. It's probably more correct to say 
Maximum Segment Size (MSS).

If the transmitter is either initially starting or is recovering from 
an error, it will send less than the window until it is able to send 
that amount without acknowledgement.

Indeed, the TCP Extensions for High Performance specifically include 
mechanisms for setting the window to sizes larger than that which can 
be set in a 16-bit field, so the stop-and-wait time when the window 
fills and an ACK has not been sent can be minimized.

>A window is the size of the TCP receive buffer.  A receiver can
>send an ACK before its receive buffer is full.  Perhaps you are thinking of
>a "segment" in Cisco's terminology, or a chunk of data from one TCP
>application to another, which may be broken down into several different
>frames.  Typically, on the last frame sent in the segment the PSH bit is
>set, to tell the TCP/IP stack on the receiving end to send the data to the
>application.  However, it would also be incorrect to say that the receiver
>can only ACK at the end of the segment, because the segment may be larger
>than the window size.
>
>The phrasing for the first question is wrong also.  Of course the sender can
>send more than the window size.  How do you think FTP transfers large
>multi-megabyte files while the window size is typically less than 64K?  If
>the question was something like, can the sender send more bytes than its
>calculated value for the receiver window size before receiving an ACK, then
>answer would be no.

And here I would disagree. The question was not about FTP, which, of 
course, doesn't know about the TCP window. FTP internally transfers 
data to TCP and TCP determines the length of to send in any given 
packet. TCP manages the window.  In an error-free environment with 
FTP, the window is very apt to reach 64K, even though that exceeds 
the MTU.  This is the Maximum Segment Size (MSS), which is sent in 
several MTUs.

You are correct that I oversimplified the situation, and that 
intermediate ACKs can be sent while running in full duplex, to give 
additional window credits.

>
>And yes, the sender has to calculate what the running window size is for
>each TCP connection.  For example, say host A and host B create a TCP
>session, and host B tells host A that it's window size is 5,000 bytes in the
>opening SYN, SYN/ACK, ACK three-way handshake.  Host A starts sending data,
>in 1,000 byte packets, to host B.  After the first packet host A has to
>calculate that it can send 4,000 more bytes before it should wait.  Host B
>can, but does not have to, send an ACK back setting the window size to 4,000
>(assuming that it did not deliver the packet to the application, which would
>reset the window size back to 5,000 bytes).  Host A sends four more 1,000
>byte packets, and it calculates that it can't send anymore.

Exactly.  A conformant implementation cannot send more than this amount.

>Now it HAS to
>wait for host B to ACK some of the data, so that it can send more.  If it
>only needed to send 2,000 bytes of data to the other application before it
>expects return data, then it would set the PSH bit on the second packet.



>
>
>
>-----Original Message-----
>From: Howard C. Berkowitz [mailto:[EMAIL PROTECTED]
>Sent: Tuesday, August 05, 2003 11:15 AM
>To: [EMAIL PROTECTED]
>Subject: Re: tcp [7:73518]
>
>At 2:17 PM +0000 8/5/03, Janik James wrote:
>>Here are some tcp questions:
>>
>>1.Can the sender send more than the window size?
>
>No.
>
>>2.Can receiver send ack before whole window comes in?
>
>Not for the window it's receiving, but for a previous window.
>**Please support GroupStudy by purchasing from the GroupStudy Store:
>http://shop.groupstudy.com
>FAQ, list archives, and subscription info:
>http://www.groupstudy.com/list/cisco.html




Message Posted at:
http://www.groupstudy.com/form/read.php?f=7&i=73564&t=73518
--------------------------------------------------
**Please support GroupStudy by purchasing from the GroupStudy Store:
http://shop.groupstudy.com
FAQ, list archives, and subscription info: http://www.groupstudy.com/list/cisco.html

Reply via email to