cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
677
Views
0
Helpful
1
Replies

TCP Window Size - Microsoft

kfarrington
Level 3
Level 3

Guys,

Sorry this is a bit non-cisco but was wondering if anyone could help?

I have a large file download from a windows server to my PC. The performance is grim for some reason, but thats not what I am worried about.

So, my PC lets just say sends an ack back to the server after it recieved a packet from the server.

In the ACK, it advertises the window size of 64k back to the server as follows :-

Transmission Control Protocol, Src Port: 1293 (1293), Dst Port: microsoft-ds (445), Seq: 75469, Ack: 5954634, Len: 0

Source port: 1293 (1293)

Destination port: microsoft-ds (445)

Sequence number: 75469 (relative sequence number)

Acknowledgement number: 5954634 (relative ack number)

Header length: 20 bytes

Flags: 0x10 (ACK)

0... .... = Congestion Window Reduced (CWR): Not set

.0.. .... = ECN-Echo: Not set

..0. .... = Urgent: Not set

...1 .... = Acknowledgment: Set

.... 0... = Push: Not set

.... .0.. = Reset: Not set

.... ..0. = Syn: Not set

.... ...0 = Fin: Not set

Window size: 64512

Checksum: 0xac2f [incorrect, should be 0xb9d3 (maybe caused by "TCP checksum offload"?)]

[Good Checksum: False]

[Bad Checksum: True]

[SEQ/ACK analysis]

[This is an ACK to the segment in frame: 7686]

[The RTT to ACK the segment was: 0.000007000 seconds]

BUT, the server only every sends two 1460 packets to me before I ack back to the server and the cycle continues.

Could the server not send me up to 64k of data before I need to ack back to the server? Why am I ack'ing back after every two full sized packets?

Can anyone help?

Many thx,

Ken

1 Reply 1

Joseph W. Doherty
Hall of Fame
Hall of Fame

It might help you if you search the Internet for a tutorial on TCP flow control. Following answers would make more sense then.

"BUT, the server only every sends two 1460 packets to me before I ack back to the server and the cycle continues." Very odd if true, as in sender sends "only" upon receipt of ACKs. It's usual to see ACKs for every second transmitted packet but sender also wouldn't usually wait unless sender was stuck in slow start or congestion avoidance.

"Could the server not send me up to 64k of data before I need to ack back to the server?" Yes, sender could send to fill receivers buffer without seeing any ACKs. Whether it would also depends what's the current allowance of the sender's send window.

"Why am I ack'ing back after every two full sized packets?" Believe that conforms with the rules for ACKs with delayed ACKs if there is no reverse traffic to piggy back ACK on.

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: