G
Guest
Guest
Archived from groups: microsoft.public.windowsnt.protocol.tcpip,comp.os.ms-windows.networking.tcp-ip,comp.protocols.tcp-ip,comp.os.ms-windows.programmer.networks (More info?)
Hi all,
I have a question about processing the FIN flag in TCP. I expect I know
the proper behavior, but I'd like to run it by other people to sanity
check my thinking (before I claim some unnamed operating system has a
bug in their TCP/IP stack).
Suppose machine A sends data to machine B. Machine B has problems keeping
up with the data and ACKs what it can (but not all that machine A has sent).
Machine A sends it's last block of data with the FIN PSH ASK flags on. Since
machine B is still catching up (or in general, the packet may have been lost
on it's way to machine B), machine B doesn't see the original FIN, but
continues to ACK the data as it processes the data. Machine A ends up
resending the last block of data to machine B and machine B finally sees
the data and ACKs it. Am I correct in thinking that machine A IS REQUIRED TO
set the FIN flag when it resent it's last block of data?? Without that,
machine B would never know the connection was terminated, right? Sure, it
sounds obvious, but when you see something being done (apparently wrong) by
one of the most widely used TCP/IP stacks in the world, you have to wonder??
Thanks,
Patrick
========= For LAN/WAN Protocol Analysis, check out PacketView Pro! =========
Patrick Klos Email: patrick@klos.com
Klos Technologies, Inc. Web: http://www.klos.com/
==================== What goes around, comes around... =====================
Hi all,
I have a question about processing the FIN flag in TCP. I expect I know
the proper behavior, but I'd like to run it by other people to sanity
check my thinking (before I claim some unnamed operating system has a
bug in their TCP/IP stack).
Suppose machine A sends data to machine B. Machine B has problems keeping
up with the data and ACKs what it can (but not all that machine A has sent).
Machine A sends it's last block of data with the FIN PSH ASK flags on. Since
machine B is still catching up (or in general, the packet may have been lost
on it's way to machine B), machine B doesn't see the original FIN, but
continues to ACK the data as it processes the data. Machine A ends up
resending the last block of data to machine B and machine B finally sees
the data and ACKs it. Am I correct in thinking that machine A IS REQUIRED TO
set the FIN flag when it resent it's last block of data?? Without that,
machine B would never know the connection was terminated, right? Sure, it
sounds obvious, but when you see something being done (apparently wrong) by
one of the most widely used TCP/IP stacks in the world, you have to wonder??
Thanks,
Patrick
========= For LAN/WAN Protocol Analysis, check out PacketView Pro! =========
Patrick Klos Email: patrick@klos.com
Klos Technologies, Inc. Web: http://www.klos.com/
==================== What goes around, comes around... =====================