A "window" is not a thing that gets sent in a TCP session.  You don't send
"windows."  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 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.  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.

Fred Reimer - CCNA


Eclipsys Corporation, 200 Ashford Center North, Atlanta, GA 30338
Phone: 404-847-5177  Cell: 770-490-3071  Pager: 888-260-2050


NOTICE; This email contains confidential or proprietary information which
may be legally privileged. It is intended only for the named recipient(s).
If an addressing or transmission error has misdirected the email, please
notify the author by replying to this message. If you are not the named
recipient, you are not authorized to use, disclose, distribute, copy, print
or rely on this email, and should immediately delete it from your computer.


-----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=73544&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