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